我正在对一个类的属性进行单元测试,该属性的值经常发生变化,具体取决于它从另一个组件接收到的通信。如果该类在 5 秒内未收到任何通信,则该属性将恢复为默认值。
我很容易对通信组件进行 stub 和模拟,以触发我想要测试的值。问题是,如果我在繁忙的机器(如构建机器)上运行我的单元测试,并且有足够大的延迟导致属性默认,那么我的单元测试将失败。
在模拟各种通信条件时,您将如何测试以确保此属性具有正确的值?
一个想法是重组我的代码,以便我可以 stub 控制超时的类部分。另一个是编写我的单元测试,以便它可以检测它是否由于超时而失败并在测试结果中指出。
最佳答案
您可以使 timeout 属性可配置,然后在您的单元测试中将其设置为足够高的值(或足够低,如果您想对重置行为进行单元测试)。
关于unit-testing - 带超时的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975794/