我应该对并发进行单元测试吗?

3

我有一些受并发影响的方法,具体来说是“竞速”(也称为赛跑)条件。我应该对它们进行单元测试还是集成/黑盒测试?

我觉得建立一个单元测试可能是一项相当困难的任务,但集成测试也是如此...


@rene 竞态条件,我猜测。 - vkurchatkin
我认为这是不可能明确测试的。也许可以进行一些集成测试,但会偶尔失败。 - vkurchatkin
程序员SE上的相关问题:http://programmers.stackexchange.com/questions/196105/testing-multi-threaded-race-conditions - George
2个回答

4

单元测试必须是确定性的,因此并发不适用于其中(我保持我的单元测试完全同步)。

使用集成测试来嗅探竞争条件 - 但要准备好可能会出现假阳性。换句话说,测试通过并不能证明你没有竞争条件。但是失败会提醒你需要修复的问题。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接