草庐IT

ios - 如何在 Xcode 的 UI 测试类目标中包含 SwiftyUserDefaults.swift?

我在iPhone的Xcodeswift应用程序中制作了一个用户界面测试类,它作用于屏幕并按下一些按钮。但是构建失败,因为某些库(SwiftyUserDefaults.swift和SwiftyJSON.swift)未包含在测试类的目标中-我收到错误:当我像这样在测试类的编译资源中包含类SwiftyJSON.swift时:我收到另一个错误,这基本上意味着我includedthesamefiletwice:我该怎么办?如何将库包含在UI测试类的目标中? 最佳答案 确保在UtilitiesPane->TargetMembership中为每个

core-data - 为什么在使用 Swift 的 XCTest 下运行时 executeFetchRequest 不返回子类对象?

我有一个使用CoreData和NSManagedObject子类设置的Swift项目。它们有一个类名设置(在xcdatamodelView中),其中包括作为类的主要目标名称“MainTarget.MyEntity”,按照.运行应用程序时一切正常。但是,我使用XCTest添加了一些单元测试,当将executeFetchRequest的结果转换为正确的类型时,应用程序开始崩溃并出现ERR_BAD_ACCESS或ERR_BAD_INSTRUCTION。我还尝试将数组中的每个元素转换为数组,这也会导致崩溃。在我所有的测试用例中错误都是零。varentities=_managedContext.

xcode - 检测 tearDown() 函数中的测试是否失败 - Xcode UIAutomation、XCTest、Swift

如果测试通过,我有一些日志要更新,如果测试通过,我要更新一些不同的日志。如何确定测试在tearDown()方法中是通过还是失败?overridefunctearDown(){super.tearDown()//Wouldlikeanifstatementheretoupdatemylogsbutnotsurehowtodetectthestateiffail{log.update("failed")}elseif!fail{log.update("success")}} 最佳答案 testRun?.failureCount如果测试失

swift - NSManagedObject 子类模拟

我正在编写XCTest案例,但我被困在一个地方。我的主要目标中有一个ClassCar,它是NSManagedObject的子类。我正在创建模拟,它将包含Car类的对象数组。但是每当我对Car的元素使用setter时,它就会崩溃。在主要目标中classCar:NSManagedObject{@NSManagedvarname:String}在测试目标中classCarTests:XCTestCase{functestCar(){letcar=getMyCar()//Someassertshere}funcgetMyCar()->Car{letcar:Car=Car.Init()car.n

ios - XCTestCase : UIApplication. shared.keyWindow 返回 nil

当我打电话UIApplication.shared.keyWindow尝试在我的测试类中设置RootViewController,关键窗口返回nil。为什么会这样?这是我设置Storyboard的方式:lettestBoard=UIStoryboard(name:"TestStoryboard",bundle:Bundle(for:type(of:self)))letvc=testBoard.instantiateViewController(withIdentifier:"TestController")UIApplication.shared.keyWindow?.rootView

ios - .joined(分隔符:) in Swift 4/Xcode 9?

我正在编写UITests,最近更新到Xcode9。这行代码抛出一个错误:letdeleteString=stringValue.characters.map{_inXCUIKeyboardKeyDelete}.joined(separator:"")这一行的错误是.joined(separator:)并说:Typeofexpressionisambiguouswithoutmorecontext它位于一个函数中,用于在UITest期间清除UITextField中的文本。在我升级到Xcode9之前,这段代码可以正常工作。有什么方法可以转换Swift4/Xcode9的语法吗?

xcode - 调用 XCTFail() 后 Swift 单元测试不会停止

据我了解,如果您在其中一个单元测试中调用XCTFail(),它会立即使该测试失败,并且不会继续检查其余的断言。然而,情况似乎并非如此,至少在我目前的项目中不是这样。我们甚至在通过的非常简单的单元测试中进行了尝试。我们在导致单元测试失败的断言之前添加了XCTFail(),但它仍然在XCTFail()之后继续并运行断言检查。这是我的误会还是哪里出了问题?如果是误解,最好的做法是告诉您的单元测试不要费心检查其他断言,因为您已经知道它们会失败?顺便使用XCTest框架做一个Swift单元测试。我没有给出代码示例,因为我们的每个单元测试似乎都是这种情况,无论它们多么简单。Xcode版本7.2.1

ios - 如何拆除核心数据堆栈?

我想为我的CoreData应用程序添加单元测试,但我确定如何重置测试之间的上下文。这是我的CoreDataStack对象:publicfinalclassCoreDataStack{varstoreType:StoreType!publicinit(storeType:StoreType){self.storeType=storeType}lazyvarpersistentContainer:NSPersistentContainer={letcontainer=NSPersistentContainer(name:"Transaction")container.loadPersist

ios - UIControl 的 sendActions 在测试目标中不起作用

我正在尝试测试当UITextField发送editingChanged事件时调用特殊处理程序。因此,为此,我通过sendActions方法模拟此事件。但它在测试目标中不起作用,在项目中一切正常(运行模式-模拟器)。我写了一个小例子:classStrange{privatelethandler:()->Voidinit(textField:UITextField,handler:@escaping()->Void){self.handler=handlertextField.addTarget(self,action:#selector(textableValueChanged),for

ios - navigationController 在 Swift XCTest 案例中为 nil

在测试ViewController时,如何在测试用例中模拟/stubnavigationController?我收到运行时异常,因为在运行测试时它在我的UIViewController中为nil。您不能直接设置它,因为它是只读的。我正在使用Swift2.2和XCTest。 最佳答案 如上面的评论所述,这可以通过实例化UINavigationController并将您尝试测试的ViewController添加到其View数组中来实现。代码:letnavigationController=UINavigationController()