gpt4 book ai didi

ios - TDD:单元测试异步调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:18:32 24 4
gpt4 key购买 nike

小伙伴们:

我正在开发一个应用程序,并通过单元测试构建它。

但是,我现在处于需要测试异步调用的情况。例如,

- (void)testUserInfoBecomesValidWhenUserIsBuiltSuccessfully
{
if ( ![userBuilder userInfoUpToDate] )
{
[userBuilder buildUser];
}

STAssertTrue([userBuilder userInfoUpToDate], @"User information is not valid before building the user");
}

测试此类事物的一般做法是什么?userInfoUpToDate 预计将异步更新。

谢谢!威廉

最佳答案

有时会很想使用单元测试来测试您通常不测试的内容。这基本上来自误解和想要测试一切的愿望。然后你意识到你不知道如何用单元测试来测试它。

您最好问问自己 - 我在这里测试什么?

我是否测试数据在请求完成之前不可用?

然后您可以编写非异步版本的测试,它将在请求完成后检查数据是否可用。

我是否测试响应在请求后是否正确保存?

您还可以在逻辑中使用标志来测试它。

您可以在不运行异步测试的情况下进行所有逻辑测试。

所以在底部我什至会问你为什么你认为你需要测试异步调用?

单元测试应该可以快速运行 - 所以将其视为不测试异步调用的另一个原因。想象一下运行这些测试的持续集成系统 - 它需要额外的时间。

并阅读您对另一个答案的评论 - 我认为在测试中使用异步根本不常见。例如。 TDD 书中的 Kent Beck。提到并发单元测试是可能的,但这种情况非常罕见。

那么 - 您真正想要测试的内容和原因是什么?

关于ios - TDD:单元测试异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14868519/

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