我有一些受并发影响的方法,具体来说是“竞速”(也称为赛跑)条件。我应该对它们进行单元测试还是集成/黑盒测试?
我觉得建立一个单元测试可能是一项相当困难的任务,但集成测试也是如此...
我有一些受并发影响的方法,具体来说是“竞速”(也称为赛跑)条件。我应该对它们进行单元测试还是集成/黑盒测试?
我觉得建立一个单元测试可能是一项相当困难的任务,但集成测试也是如此...
单元测试必须是确定性的,因此并发不适用于其中(我保持我的单元测试完全同步)。
使用集成测试来嗅探竞争条件 - 但要准备好可能会出现假阳性。换句话说,测试通过并不能证明你没有竞争条件。但是失败会提醒你需要修复的问题。
我找到了这篇文章,它对我的问题非常有指导意义: https://testing.googleblog.com/2014/02/minimizing-unreproducible-bugs.html