2011-01-12 1497 views

回答

3

无论您选择什么,测试并发代码都很困难。

TestNG具有创建多个线程并在并发测试中运行它们的机制。我相信在JUnit测试中可以创建一堆FutureTasks来实现一种方法。它仅在JUnit 4中不受支持。

优点?这里有几个:

  1. 将测试代码从生产代码中分离出来。
  2. 可以一次为应用程序运行一套测试。
  3. 支持Ant,Maven和IDE,如IntelliJ和Eclipse。
  4. 已成为测试驱动开发和敏捷技术思想的一部分。
+0

非常好。非常感谢那个duffmo。请问JUnit是否存在一些缺陷?非常感谢。 – Joeblackdev 2011-01-12 15:45:15

2

的JUnit有两个优势:

  1. 它的作品不够好。而且,就像Perl一样,它使简单的事情变得简单并且让事情变得可能。我们有适合JUnit框架的测试运行器,但实际上使用ASM字节码库进行静态分析。
  2. 它无处不在。每个人都知道,每个工具都支持它,你可以在网上找到大多数答案。

在JUnit中测试并发代码是可能的,但它没有提供任何特别的支持。你必须自己管理你的线程并安排交错场景。

也就是说,我相信那里有工具,如果你采用JUnit,你很可能会发现这是来自像hamcrest matchers这样的测试助手的预期场景。

0

只是为寻找并发性的人提供一个说明 - 有一个单元测试框架用于测试并发性(东西 - 单元)。谷歌搜索没有为我找到它,但我知道它存在,最近阅读它。