gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:40 25 4
gpt4 key购买 nike

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

- (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);
}
}];

最佳答案

使用XCTWaiterwaitForExpectations(timeout:handler:)拖延每个测试的完成,直到满足预期。

这篇博文解释了您在编写异步测试时可能遇到的一些更复杂的陷阱以及如何避免它们:https://jeremywsherman.com/blog/2016/03/19/xctestexpectation-gotchas/

关于ios - 在 XCode 中开始下一个单元测试之前等待 XCTestExpectation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com