5

我有一个类,它适用于字符串字典。一种方法是初始化字典,另一种方法是向字典中添加新对,第三种方法是将字典连接成字符串。

我想通过在不同线程中同时运行 init-adding-adding- * -adding-finalizing 方法来对其线程安全进行单元测试。在使用之前创建类的新实例,字典不是静态的。所以我想确定它是否安全。

Afaik,在单元测试中测试线程并不是一个好主意。相反,我找到了一个 CHESS,它的设计目的完全相同:http ://blog.decarufel.net/2009/05/how-to-test-your-multi-threaded-code.html

然而,看起来它已经过时了。在这个领域有任何现代的替代方案/建议吗?

4

2 回答 2

3

作为替代方案,您可以看看使用ConcurrentDictionary类型,它可以抽象出这些特定的多线程问题。

但是,如果您想继续使用自己的机制(或者如果您想对如何测试多线程代码的问题有一个一般性的答案),那么从这篇文章中可以看出 CHESS 绝不过时。据我所知,自该工具首次发布以来,底层技术 - 多线程 - 根本没有改变,因此除非您在使用它时遇到特定问题,否则继续进行是完全合理的。

于 2013-03-21T16:08:13.870 回答
2

该项目的最后一次签到是在 2012 年 10 月。我不会说它已经过时了。

http://chesstool.codeplex.com/SourceControl/list/changesets

于 2013-03-21T16:09:47.493 回答