【发布时间】:2015-10-21 10:19:41
【问题描述】:
几天以来,我试图弄清楚如何使用 GHUnit 测试我的 API。现在我来测试这个问题:
API 获得一些输入,CUT 执行一些操作并启动一个 NSTimer。计时器触发后,它会发送一个带有一些 userInfo 数据的 NSNotification。很清楚如何测试 userInfo 数据,但我要测试的是,是否仅在某些特定情况下才发送通知,如果不是,则根本不应该发送。
我如何测试它,读完这篇就很清楚了:http://www.hpique.com/2013/12/nsnotificationcenter-part-3/
但现在逻辑问题出现了:CUT 的异步行为在 NSTimer 触发后发送 NSNotification。当我现在在每个测试中等待计时器触发时,我的测试会变得非常慢。
如何在不一直等待 NSTimer 触发的情况下测试行为?你有什么想法吗?
【问题讨论】:
-
所以,您的问题实际上是,是否可以并发执行一个或多个异步测试,以及是否存在类似“异步测试”`?
-
或多或少。实际的想法是,去掉定时器,让异步测试变成同步测试,测试起来相当容易。如果这是不可能的,如何以正确的方式测试这种异步行为而不是进行缓慢的测试。
标签: objective-c unit-testing asynchronous nstimer nsnotification