代码之家  ›  专栏  ›  技术社区  ›  MRalwasser

如何编写多线程单元测试?

  •  15
  • MRalwasser  · 技术社区  · 16 年前

    我想知道是否有一些单元测试框架能够轻松地编写多线程测试?

    我想象一下: 同时调用N个线程的特殊测试方法m次。在所有测试线程完成后,将调用一个断言方法,其中应验证某些约束。

    我目前的方法是在JUnit测试方法中创建线程对象,在每个run()方法中手动循环实际的测试用例,等待所有线程,然后验证断言。但是使用这个,我为每个测试都有一个大型样板代码块。

    你的经历是什么?

    3 回复  |  直到 16 年前
        1
  •  11
  •   mdma    16 年前

    有 ConTest ,而且 GroboUtils .

    很多年前我用过腹股沟,它起到了作用。竞争是更新的,现在将是我首选的起点,因为工具不只是依赖于尝试和错误,而是强制线程的特定交错,提供确定性测试。相比之下,groboutils multiphreadetstrunner只需运行测试,并希望调度器生成一个交错,从而导致线程错误出现。

    编辑:参见 ConcuTest 这也迫使交错和自由。

        2
  •  4
  •   Holger Hoffstätte    16 年前

    也有 MultithreadedTC 由芬德布格斯名气的比尔·普格。

        3
  •  0
  •   Peter Lawrey    16 年前

    仅仅使用并发库就可以简化代码。您可以将锅炉板代码转换为一种方法。

    类似的东西

    public static void runAll(int times, Runnable... tests) {
    
    }