gpt4 book ai didi

unit-testing - iOS:为 block 编写测试

转载 作者:行者123 更新时间:2023-12-03 16:57:10 25 4
gpt4 key购买 nike

我正在尝试为一个接受 successfailure block 的函数编写测试。这是我第一次尝试测试:

- (void)testThatValidSearchProducesSearchResults
{
__block NSArray *searchResults;
__block NSError *searchError;

[self.searchQuery searchForPlaces:@"The White House"
success:^(NSArray *places) {
searchResults = places;
}
failure:^(NSError *error) {
searchError = error;
}
];

XCTAssertNotNil(searchResults, @"Valid search should return search results.");
XCTAssertNil(searchError, @"Valid search should not return an error.");
}

但是,在达到测试条件之前, block 中的代码永远不会执行。想要准确地测试这一点吗?

最佳答案

如果无法看到 searchQuery 的内容,最可能的响应似乎是“它可能是一个异步 API” - 您正在排队请求,而不是执行它。

因此,在请求以一种或另一种方式完成之前,您会陷入断言,因此 success: 或 failure: block 都不会被调用。这应该是预期的行为。

现在,如果它不是异步的,那么恭喜你,您的测试在正在测试的函数中发现了一个错误。

关于unit-testing - iOS:为 block 编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28466932/

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