如果某些代码是线程安全的单元测试的最佳方法?

时间:2011-03-15 19:04:55

标签: c# .net c#-4.0 nunit

  

可能重复:
  Unit test for thread safe-ness?

如果某些代码是线程安全的,我正在寻找单元测试的最佳方法。

我正在使用NUnit和Moq作为单元测试框架。

1 个答案:

答案 0 :(得分:1)

那么,您的代码是否使用并发?因为如果不是它已经是线程安全的。我相信你的问题根本就是错误的,应该是“我如何设计线程安全代码?”这句话。

这个问题的问题在于它非常广泛,在设计代码是线程安全时需要考虑很多事情。

但是,您可以用来测试代码的方法是在很长一段时间内使用暴力和多线程。如果结果不一致,则可能存在同步问题。这里的问题当然是不一致的结果不一定是与并发相关的问题,它仍然可能使用单个线程发生。

您需要做的是查看您希望线程安全的代码,并且基本上问自己“如果我在这里无限期地睡眠会怎么样?”。如果你得出结论,在运行并发代码时,一切都有效,并且有大量随机睡眠持续时间交错(这会使并发问题更加明显),那么你就是在正确的轨道上。