8

你会推荐哪些框架来为 Java 中的多线程代码编写单元测试?例如,当您有一个程序应该执行具有多个允许执行路径和某些排除路径的线程时(例如“可执行单元 1、2 和 3 可以并行运行,至少应该运行两个并行,并且 4 总是必须在 3 之后运行)。

4

4 回答 4

3

我建议阅读JUnit@Rule以将它们用于并发测试。

于 2012-04-13T14:05:26.943 回答
2

我推荐ContiPerf2,因为它是一个非常易于使用的框架。尽管我认为它不会提供声明执行路径或类似内容的可能性。

于 2012-04-13T16:35:45.090 回答
1

该线程描述了一些测试并发代码的通用方法。

为自定义 Barrier 设计测试类

对于特定的框架, tempus-fugit有一些 JUnit规则可以并行运行,但如上所述,您的测试可能必须包含更多逻辑。

于 2012-04-20T09:52:22.023 回答
1

您可以使用参数化的 JUnit 测试,如下所述:http: //junit.org/junit/javadoc/4.5/org/junit/runners/Parameterized.html

但是您需要自己编写线程逻辑,例如使用不同的线程池。

如果你想证明你的代码是线程安全的,你可以看看 pathfinder (http://javapathfinder.sourceforge.net/)。

于 2012-04-14T00:05:53.377 回答