【问题标题】:Frameworks for Unittests for Multithreading in Java [closed]Java中多线程的单元测试框架[关闭]
【发布时间】:2012-04-25 21:37:27
【问题描述】:

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

【问题讨论】:

    标签: java multithreading unit-testing concurrency


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          Designing a Test class for a custom Barrier

          对于特定的框架,tempus-fugit 有一些 JUnit rules to run things in parallel,但如上所述,您的测试可能必须包含更多逻辑。

          【讨论】:

            猜你喜欢
            • 2011-02-14
            • 1970-01-01
            • 1970-01-01
            • 2012-12-25
            • 2011-01-16
            • 1970-01-01
            • 2012-10-18
            • 1970-01-01
            • 2011-09-10
            相关资源
            最近更新 更多