unit-testing - 带超时的单元测试

标签 unit-testing timeout

我正在对一个类的属性进行单元测试,该属性的值经常发生变化,具体取决于它从另一个组件接收到的通信。如果该类在 5 秒内未收到任何通信,则该属性将恢复为默认值。

我很容易对通信组件进行 stub 和模拟,以触发我想要测试的值。问题是,如果我在繁忙的机器(如构建机器)上运行我的单元测试,并且有足够大的延迟导致属性默认,那么我的单元测试将失败。

在模拟各种通信条件时,您将如何测试以确保此属性具有正确的值?

一个想法是重组我的代码,以便我可以 stub 控制超时的类部分。另一个是编写我的单元测试,以便它可以检测它是否由于超时而失败并在测试结果中指出。

最佳答案

您可以使 timeout 属性可配置,然后在您的单元测试中将其设置为足够高的值(或足够低,如果您想对重置行为进行单元测试)。

关于unit-testing - 带超时的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975794/

相关文章:

JavaScript onKeyUp 超时关闭

javascript - AngularJS:超时 promise 调用

Javascript setTimeout/clearTimeout 在 Electron 中的奇怪行为

Angular:我如何在 Jasmine 中测试@HostListener?

unit-testing - 使用 Fitness 与自动化集成测试相比有什么优势?

ios - OCUnit 测试从命令行失败,但在使用钥匙串(keychain)服务时在 Xcode 中工作

90 秒后 ASP.NET 请求超时 - 服务不可用 503

javascript - 一个接一个地执行函数

ios - Xcodebuild 测试无限期挂起而没有错误

c# - 单元测试时 HttpRequestMessage Content Disposition null