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