考虑以下单元测试:
- (void)testSample {
XCTestExpectation *expectation = [self expectationWithDescription:@"Sample"];
[self.manager loadAllSuccess:^{
[expectation fulfill];
NSArray *data = [self.manager dataForIndex:0];
// Correct count of data is 10, not 44 - this should fail.
XCTAssertEqual(44, data.count);
} failure:^(NSError *error) {
[expectation fulfill];
XCTFail(@"Error encountered");
}];
[self waitForExpectationsWithTimeout:60 handler:nil];
}
我在已知的失败案例中遇到了一些问题。测试成功完成,尽管数据数组中应该只有 10 个项目。
如果我把[expectation fulfill]
调用放在块的底部,在XCTAssertEqual(44, data.count)
方法调用之后,测试会按预期工作并失败,直到我将值更正为 10。
这是一个已知的问题?我一直无法阅读文档说我应该在最后一刻打电话给...