Tag: xctest

NSURL用XCTest在testing包中loggingpath

我正在尝试使用TDD和新的XCTest框架编写iOS应用程序。 我的一个方法从互联网上检索一个文件(给定一个NSURL对象)并将其存储在用户的文档中。 该方法的签名类似于: – (void) fetchAndStoreImage:(NSURL *)imageUrl 我试图用这种方法编写testing,如果没有连接到互联网,它不会失败。 我的做法(从前面的问题中获得 )是使用NSURL调用本地文件系统中的映像的方法。 当创build一个unit testing启用的新项目时,Tests目录有一个名为“支持文件”的子目录。 我想这是我的testing图像应该去的地方。 我的问题是如何获得一个指向这个目录中的图像的NSURL对象,因为我不希望testing图像与应用程序捆绑在一起。 任何帮助表示赞赏。

什么时候应用程序源码需要包含在testing目标中?

在一个新的项目中,我有这个简单的testing #import <XCTest/XCTest.h> #import "ViewController.h" @interface ViewControllerTests : XCTestCase @end @implementation ViewControllerTests – (void)testExample { // Using a class that is not in the test target. ViewController * viewController = [[ViewController alloc] init]; XCTAssertNotNil(viewController, @""); } @end ViewController.h 不是testing目标的一部分,但它编译和运行testing没有问题。 我认为这是因为应用程序是首先(作为依赖),然后testing。 链接器然后找出ViewController类是什么。 但是,在一个较旧的项目中,使用完全相同的testing和ViewController文件,构build在链接器阶段失败: Undefined symbols for architecture i386: "_OBJC_CLASS_$_ViewController", referenced from: objc-class-ref in ViewControllerTests.o 即使创build了新的XCTestunit testing目标,也会出现此链接器错误。 […]

在Xcodeunit testing中使用@testable时,“没有这样的模块”

我最近更新到Xcode 7testing版5.我试图添加一个unit testing到一个较早的项目,但我收到错误消息“没有这样的模块[myModuleName]” @testable import myModuleName行。 我试过了 使用Option Clean Build Folder清理项目 在“构build选项”中检查“启用可testing性”(debugging)设置为“是” 删除testing目标,然后重新添加iOSunit testing包 这一切都没有为这个项目工作(但我已经得到testing,在另一个项目工作)。 有没有其他人有这个问题,并解决了它?

在Xcode 6中内置的旧项目中找不到XCTest / XCTest.h

我正在尝试使用Xcode 6 Beta 2构build一些项目。这些项目都有一些使用XCTest(Kiwi / XCTest和Specta)的库,不会在Xcode 6中生成,因为XCTest / XCTest.h不能被发现。 fatal error: 'XCTest/XCTest.h' file not found #import <XCTest/XCTest.h> 我注意到XCTest.framework不再处于“链接库与二进制”构build阶段列表,但这很好,因为当我用Xcode 6创build一个新项目时,它显示库自动链接。 也许有一些相关性,我的XCTest需要的依赖关系都是通过Cocoapods引入的。 有什么我不知道,我需要更新我的项目?

Xcode 7用户界面testing:如何解除代码中的一系列系统警报

我正在编写使用新的Xcode 7 UItestingfunction的UItesting用例。 在我的应用程序的某个时候,我要求用户许可摄像头访问和推送通知。 因此,两个iOSpopup窗口将显示: "MyApp Would Like to Access the Camera"popup窗口和"MyApp Would Like to Send You Notifications"popup。 我想我的testing,以消除这两个popup窗口。 UIlogging为我生成了以下代码: [app.alerts[@"cameraAccessTitle"].collectionViews.buttons[@"OK"] tap]; 但是, [app.alerts[@"cameraAccessTitle"] exists]parsing为false,上面的代码生成一个错误: Assertion Failure: UI Testing Failure – Failure getting refresh snapshot Error Domain=XCTestManagerErrorDomain Code=13 "Error copying attributes -25202" 。 那么在testing中解除一堆系统警报的最好方法是什么? 系统popup窗口中断我的应用程序stream程,并立即失败我的正常UItesting用例。 事实上,有关如何绕过系统警报的任何build议,所以我可以恢复testing通常的stream程,赞赏。 这个问题可能与这个SOpost有关,也没有答案: Xcode7 | Xcode UItesting| 如何处理位置服务警报? 提前致谢。