我想知道是否有一些单元测试框架可以轻松编写多线程测试?
我会想象这样的事情: n 个线程同时调用一个特殊的测试方法 m 次。在所有测试线程完成后,将调用应验证某些约束的断言方法。
我目前的方法是在 junit 测试方法中创建 Thread 对象,在每个 run() 方法中手动循环真实的测试用例,等待所有线程,然后验证断言。但是使用这个,我有一个用于每个测试的大型样板代码块。
你的经历是什么?
最佳答案
有ConTest , 还有 GroboUtils .
我在很多年前就使用过 GroboUtils,它完成了这项工作。 ConTest 较新,现在将是我首选的起点,因为仪器不是仅仅依靠反复试验,而是强制线程的特定交织,提供确定性测试。相比之下,GroboUtils MultiThreadedTestRunner 只是运行测试,并希望调度程序产生交错,从而导致出现线程错误。
编辑:另见 ConcuTest这也强制交错并且是免费的。
关于java - 如何编写多线程单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256064/