我是一名经验丰富的Objective-c程序员,但我不能对Swift说同样的话,我很难在不使用OCMock等框架的情况下对Swift中的类进行单元测试。问题:我正在将Firebase集成到混合的Objective-C/Swift项目中,我需要根据应用程序的构建配置对其进行配置。我已经为此编写了一个Swift类(将由obj-c应用程序委托(delegate)使用),但是由于firebase框架是通过静态类方法配置的,正是FIRApp.configure(with:FIROptions),我需要以某种方式模拟此方法以便对其进行单元测试。我的代码,没有任何依赖注入(inject)句柄,看起来
自从升级到xcode9后,我的一些UI测试开始抛出NSInternalInconsistencyException消息Activitycannotbeusedafteritsscopehascompleted当我在XCUIElement上调用tap()时出现问题。我可以看到该元素是一个有效的按钮,它已启用。非常感谢任何有关修复或解决此问题的帮助!异常堆栈跟踪的顶部是:0CoreFoundation0x00000001035ad1cb__exceptionPreprocess+1711libobjc.A.dylib0x0000000102f0ff41objc_exception_thro
自从升级到xcode9后,我的一些UI测试开始抛出NSInternalInconsistencyException消息Activitycannotbeusedafteritsscopehascompleted当我在XCUIElement上调用tap()时出现问题。我可以看到该元素是一个有效的按钮,它已启用。非常感谢任何有关修复或解决此问题的帮助!异常堆栈跟踪的顶部是:0CoreFoundation0x00000001035ad1cb__exceptionPreprocess+1711libobjc.A.dylib0x0000000102f0ff41objc_exception_thro
我有一个场景,在进行xcodeui测试时我必须旋转我的模拟器。要旋转模拟器,我使用下面的代码UIDevice.currentDevice().orientationletvalue=UIInterfaceOrientation.LandscapeLeft.rawValueUIDevice.currentDevice().setValue(value,forKey:"orientation")但它不起作用。在xcodeui测试中使用Swift代码旋转模拟器有什么解决方案吗? 最佳答案 你试过吗?swift2.xXCUIDevice.s
我有一个场景,在进行xcodeui测试时我必须旋转我的模拟器。要旋转模拟器,我使用下面的代码UIDevice.currentDevice().orientationletvalue=UIInterfaceOrientation.LandscapeLeft.rawValueUIDevice.currentDevice().setValue(value,forKey:"orientation")但它不起作用。在xcodeui测试中使用Swift代码旋转模拟器有什么解决方案吗? 最佳答案 你试过吗?swift2.xXCUIDevice.s
如果该功能当前被禁用,我不想执行某些测试。有没有办法“跳过”测试(并在控制台上获得适当的反馈)?像这样:functestSomething(){if!isEnabled(feature:Feature){skip("Testskipped,feature\(feature.name)iscurrentlydisabled.")}//actualtestcodewithassertionshere,butnotrunifskipabovecalled.} 最佳答案 您可以通过右键单击左侧编辑器托盘中的测试符号来禁用Xcode运行的XC
如果该功能当前被禁用,我不想执行某些测试。有没有办法“跳过”测试(并在控制台上获得适当的反馈)?像这样:functestSomething(){if!isEnabled(feature:Feature){skip("Testskipped,feature\(feature.name)iscurrentlydisabled.")}//actualtestcodewithassertionshere,butnotrunifskipabovecalled.} 最佳答案 您可以通过右键单击左侧编辑器托盘中的测试符号来禁用Xcode运行的XC
由于一些问题,我希望项目中的XCTest目标运行单独的应用委托(delegate)。使用ObjC,这是一个相对简单的过程:操作main.m(参见:https://stackoverflow.com/a/15725328/1299041)。既然Swift应用程序似乎是在AppDelegate中使用@UIApplicationMain初始化的,那么是否可以为测试目标使用单独的AppDelegate进行初始化? 最佳答案 如果正在测试,强烈不建议在正常代码检查中添加条件。相反,你应该在测试中模拟你的AppDelegate来做任何你想做的事
由于一些问题,我希望项目中的XCTest目标运行单独的应用委托(delegate)。使用ObjC,这是一个相对简单的过程:操作main.m(参见:https://stackoverflow.com/a/15725328/1299041)。既然Swift应用程序似乎是在AppDelegate中使用@UIApplicationMain初始化的,那么是否可以为测试目标使用单独的AppDelegate进行初始化? 最佳答案 如果正在测试,强烈不建议在正常代码检查中添加条件。相反,你应该在测试中模拟你的AppDelegate来做任何你想做的事
我正在使用XCTest在我的项目中编写单元测试,当使用XCAssertNil()或XCAssertNotNil()方法时,XCTest框架崩溃。这是我的测试:XCTAssertNotNil(messageCollection.fieldName,"field_namemustbenot-nil")这是堆栈跟踪:2015-06-2217:05:17.629xctest[745:8747]***Assertionfailureinvoid_XCTFailureHandler(XCTestCase*,BOOL,constchar*,NSUInteger,NSString*,NSString*