草庐IT

xctestexpectation

全部标签

ios - 使用 XCTestExpectation 单元测试异步函数,但它不会等待我设置的秒数

我有一个MyService类继承了NSThread:标题:@interfaceMyService:NSThread{-(void)startMe;-(void)doTask;...}实现:@implementationMyService-(void)startMe{[selfstart];}-(void)doTask{[selfperformSelector:@selector(checkData:)onThread:selfwithObject:nilwaitUntilDone:YES];}-(void)checkData{...//NOTE:dataCheckedisaninsta

ios - 在 XCode 中开始下一个单元测试之前等待 XCTestExpectation

我有许多异步单元测试,它们使用期望独立运行。然而,当我运行套装中的所有测试时,它们不会等待彼此完成——当下一个测试开始运行时,异步回调仍处于挂起状态。我想要的是每个测试都等待上一个测试中的期望再运行。这些测试使用共享数据库,因此让它们重叠会导致烦人的额外复杂性,并且在作为套件运行时会导致测试失败。-(void)testSignIn{//Thisisanexampleofafunctionaltestcase.//UseXCTAssertandrelatedfunctionstoverifyyourtestsproducethecorrectresults.XCTestExpectati

ios - XCTest 和使用模拟对象作为通知接收器

在使用swift的XCTest中,您可以在需要它的测试函数中定义模拟对象。像这样functestFunction(){classmockClass:AnyObject{funcaFunction(){}}}我正在尝试使用这些模拟对象来测试另一个函数是否在给定特定条件的情况下发出正确的通知(在我的例子中,成功通知是通过204状态代码广播到对象的。我遇到的问题是我收到“无法识别的选择器”运行时错误,即使deletedSuccess()函数显然存在/这里是一些代码转储functestDelete(){letexpectation=expectationWithDescription("Pos

ios - 如何用 `downloadTask` 为 `completionHandler ` 编写单元测试?

这是我的下载函数://DownloadafilefromtheurltothelocaldirectoryclassfuncdownloadUrl(url:URL,todirUrl:URL,completion:(()->())?){letsessionConfig=URLSessionConfiguration.defaultletsession=URLSession(configuration:sessionConfig)letrequest=URLRequest(url:url)lettask=session.downloadTask(with:request){(tempLoc

json - 测试用例 : SwiftHTTP library not making the HTTP call

重要事实Iforgottomentionanimportantfactorinthequestion.IamrunningthisinaTestCase.IthinkthisissuehassomethingtodowiththeTestCasenotawaitingforasynccompletionHandlertoreturn从Alamofire迁移出来至SwiftHTTP,因为我发现这更容易。在SwiftHHTP上,没有办法知道生成了什么URL,它返回了什么错误。例如,我试图查看opt.debugDescription变量,它返回了一些神秘的东西,比如descriptionSt

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

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

ios - XCTAssert 中断函数

如果逻辑失败,如何停止单元测试的执行。下面是例子。如何在XCTAssertEqual("Hello","Hi","Passed")条件失败时停止执行。functest_one(){XCTAssertEqual("Hello","Hi","Passed")letb="GoodMorning!"//codecontinues...} 最佳答案 XCTestCase有一个默认为true的变量varcontinueAfterFailure:Bool。这意味着即使在测试失败后测试仍会继续运行overridefuncsetUp(){super.

ios - XCTAssert 中断函数

如果逻辑失败,如何停止单元测试的执行。下面是例子。如何在XCTAssertEqual("Hello","Hi","Passed")条件失败时停止执行。functest_one(){XCTAssertEqual("Hello","Hi","Passed")letb="GoodMorning!"//codecontinues...} 最佳答案 XCTestCase有一个默认为true的变量varcontinueAfterFailure:Bool。这意味着即使在测试失败后测试仍会继续运行overridefuncsetUp(){super.

ios - 在后台线程上调用 XCTestExpectation fulfill 方法是否安全?

我在很多测试中都使用了XCTestExpectation,有时(非常随机地)一些期望没有实现(尽管我确信它们应该是)。在调查这个问题时,我注意到一些期望在主线程中实现,而一些在后台线程中实现。到目前为止,这些问题都是在后台线程中完成的。从后台线程满足期望是否安全?我找不到任何相关的明确信息。下面是我如何使用XCTestExpectation的示例:__blockXCTestExpectation*expectation=[selfexpectationWithDescription:@"test"];[selfdoSomethingAsyncInBackgroundWithSucces

ios - XCTestExpectation - 调用异步方法两次会导致 API 违规

我正在用swifts编写单元测试,并测试一个独特的工作流程。在methodA()中,我使用异步方法错误地加载了一个对象(比如使用不正确的凭据)。也掀起一个期待funcmethodA(withCredcredential:NSURLCredential){varobjA=ObjectA()//SetobjA.a,objA.b,objA.c,objA.credential=credential//IncorrectcredentialFirsttime,CorrectCredentialsecondtimeobjA.delegate=selfexpectation=expectationW
12