我正在为一些线程锁定逻辑编写单元测试,以便使测试更容易快速失败;我希望所有的线程经常在随机时间之间切换。
我知道这不会证明我们没有任何错误,但至少应该让错误更频繁地出现。
感谢所有人说“不要这样做”,但我有非常简单的锁定,应该从不失败,我们目前只进行单元测试。任何能够降低某人在不了解他们正在做什么的情况下移除锁定的风险的事情都是值得的。
答案 0 :(得分:2)
This question不是关于线程振动器,而是关于一般测试线程。看看推荐的工具。一个评论员链接this other question,也可能很有趣。
答案 1 :(得分:1)
看看CHESS。
答案 2 :(得分:1)
我不同意,随机转移的线程将更有效地测试您的代码。如果你把它打得太厉害,那么编写得最好的多线程代码就会陷入僵局。
在不知道你在做什么的情况下我不能更具体,但一般来说,我认为负载测试是测试线程锁定逻辑的一种更有效的方法。
答案 3 :(得分:1)
您可能值得花些时间在MS Research调查CHESS。
答案 4 :(得分:0)
我强烈建议你不要这样做。这将使您的单元测试不可信,并使它们无用。单元测试应始终具有相同的结果(当代码不更改时)。当这样的测试不可预测时,开发人员将不再看它,而不是写这个单元测试的浪费。
测试它可能很有用,但不能作为单元测试。对我来说这似乎更像是一种特殊的考验。
[UPDATE] 查看this answer中的this thread。作者对多线程单元测试有同样的感受,但他解释得比我做得好得多。