多线程应用程序的单元测试

7

有人有关于多线程应用程序单元测试的建议或者知道任何框架吗?

3个回答

6

不要对多线程应用进行单元测试。重新设计代码以消除在不同线程中完成的工作之间的耦合,然后分别进行测试。


5
通常情况下,你不会对多线程应用程序的并发性进行单元测试,因为单元测试不可靠且无法重现——由于并发错误的本质,通常不可能编写一致地失败或成功的单元测试,因此并发代码的单元测试通常不是非常有用的单元测试。
相反,您可以像平常一样对应用程序的每个单线程组件进行单元测试,并依赖负载测试会话来识别并发问题。
话虽如此,还有一些实验性的负载测试框架可用于测试并发应用程序,例如Microsoft CHESS - CHESS会重复运行给定的单元测试,并系统地探索并发测试的每个可能交错。这使得您的单元测试变得可靠且可重复。
然而,目前CHESS仍处于实验阶段(并且可能无法与JVM一起使用)-现在请坚持使用负载测试来排除并发问题。

这是 CHESS 的链接:http://chesstool.codeplex.com/。看起来该项目没有任何活动。 - Amzath

3

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