- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有许多异步单元测试,它们使用期望独立运行。然而,当我运行套装中的所有测试时,它们不会等待彼此完成——当下一个测试开始运行时,异步回调仍处于挂起状态。我想要的是每个测试都等待上一个测试中的期望再运行。这些测试使用共享数据库,因此让它们重叠会导致烦人的额外复杂性,并且在作为套件运行时会导致测试失败。
- (void)testSignIn {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
XCTestExpectation *expectation =
[self expectationWithDescription:@"Expectations"];
[_userManager signInWithUsername:kUserEmail andPassword:kUserPassword
success:^{
XCTAssertNotNil([_userManager getCurrentUser]);
XCTAssertNotNil([_userManager getCurrentUser].plan);
XCTAssertTrue([_userManager getCurrentUser].plan.liveStream == TRUE);
[expectation fulfill];
} failure:^(EDApiError *apiError) {
XCTAssertTrue(FALSE); // Should not fail
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:5.0 handler:^(NSError *error) {
if (error) {
NSLog(@"Timeout Error: %@", error);
}
}];
最佳答案
使用XCTWaiter或 waitForExpectations(timeout:handler:)拖延每个测试的完成,直到满足预期。
这篇博文解释了您在编写异步测试时可能遇到的一些更复杂的陷阱以及如何避免它们:https://jeremywsherman.com/blog/2016/03/19/xctestexpectation-gotchas/
关于ios - 在 XCode 中开始下一个单元测试之前等待 XCTestExpectation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497158/
我正在尝试测试将运行多次的异步代码,并尝试为模拟的用户输入提前创建单独的期望。我正在尝试使用一个结构,该结构将位于一个数组中,然后异步函数和主测试函数都可以访问该结构。 虽然下面的代码会产生一个我以前
我在 Xcode 6 (Beta 5) 中使用 XCTestExpectations 进行异步测试。每次我运行它们时,我所有的异步测试都会单独通过。然而,当我尝试运行我的整个套件时,一些测试没有通过,
我正在使用Xcode 6的新异步测试功能。当异步任务在超时之前结束时,一切工作正常。但是,如果任务花费的时间超过超时时间,事情就会变得更加复杂。 这是我进行测试的方式: @interface Asyn
有 2 个选项如何初始化 XCTestExpectation。首先,使用直接初始化程序。 import XCTest class MyTests: XCTestCase { let expec
我编写了一个测试来检查某些值是否会在 5 秒内降为零。每隔一秒 NSTimer 都会触发一个将此值减一的方法。 看起来像这样: let foo = SomeObject(initWithTim
在异步测试中,至少对我来说,必须知道期望的实现计数才能知道如何断言是很常见的。 例如,一个测试来检查这个场景: 获取数据 收到第一个回调后,断言项目是否符合预期 获取下一页项目 断言项目是否符合预期
考虑以下单元测试: - (void)testSample { XCTestExpectation *expectation = [self expectationWithDescription
我正在用 Swift 编写一个 XCTest 单元测试。这个想法是在特定情况下不得调用回调。 所以我做的是 func testThatCallbackIsNotFired() { let ex
我有三个异步测试。在 Xcode 中测试时一切都运行良好,但测试用例无法使用 xcodebuild 构建。我收到 11 个构建错误,全部与 XCTestExpectation 相关。 示例: erro
我有一个 MyService 类继承了 NSThread: 标题: @interface MyService : NSThread { -(void) startMe; -(void) doT
我有许多异步单元测试,它们使用期望独立运行。然而,当我运行套装中的所有测试时,它们不会等待彼此完成——当下一个测试开始运行时,异步回调仍处于挂起状态。我想要的是每个测试都等待上一个测试中的期望再运行。
我在很多测试中都使用了 XCTestExpectation,有时(非常随机地)一些期望没有实现(尽管我确信它们应该是)。 在调查这个问题时,我注意到一些期望在主线程中实现,而一些在后台线程中实现。到目
我正在用 swifts 编写单元测试,并测试一个独特的工作流程。 在 methodA() 中,我使用异步方法错误地加载了一个对象(比如使用不正确的凭据)。也掀起一个期待 func method
我想确保在一种特定情况下不会发送某个 NSNotification。有没有使用 XCTestCase 实现此目的的简单方法? 最佳答案 创建一个辅助方法来订阅 NSNotification。收到后,设
我正在用 Swift 编写我的第一个集成测试。 我正在尝试检查特定 url 中是否存在图像。 我想执行一个头部请求并检查响应的状态码。 我不断收到错误: Terminating app due to
我正在尝试编写单元测试,我希望我的测试用例等待某个类中的变量发生变化。因此,我创建了一个带有谓词的期望值,并使用 XCTWaiter().wait(for: [expectation], timeou
我是一名优秀的程序员,十分优秀!