使用JUnit 3.x和JUnit 4.x运行测试仍然是最佳实践吗?

时间:2008-12-01 13:51:51

标签: java unit-testing junit

我有一段时间没有看过这个,但如果我没记错,ant和maven仍然依赖JUnit 3进行单元测试(从maven 2.09开始,默认的POM文件仍然有JUnit 3.81)。

坚持JUnit 3而不是使用最新最好的东西仍然有意义吗?我可能会失踪的任何好理由?

6 个答案:

答案 0 :(得分:9)

我没有理由坚持使用3.x版本。大多数工具现在已经与4.x兼容了一段时间。我坚持使用3.x的唯一原因是在java 1.4环境中(因为没有别的办法)。

顺便说一句,maven在2.1中切换到Java 5,所以他们有可能提出junit 4.x

答案 1 :(得分:8)

JUnit 4比3.x有很多优势。最重要的是你不再需要扩展TestCase,你的测试方法也不必以“test”开头。它现在都是基于注释的。您还可以添加Hamcrest匹配器,它为您提供了一种非常好的和富有表现力的编写测试断言的方法。

如果你坚持使用Java-1.5之前的项目,你可能不得不坚持使用JUnit 3.x.

答案 2 :(得分:6)

JUnit 4.x有一些原因,有些则反对它。

优点:

  • 注释易于理解并提高可读性。
  • 忽略测试更容易。
  • 您可以根据需要命名方法。

缺点:

  • 您需要Java 5(注释)。
  • 迁移可能需要(?)。

我使用JUnit 4,因为它更好,但这是我个人的意见。

答案 3 :(得分:4)

Ant不会在JUnit 3上回复。

我建议转移到新的JUnit,原因很简单,您将看到越来越多的工具和示例,仅限JUnit4。坚持使用JUnit3意味着生活在一个日益萎缩的生态系统中。

答案 4 :(得分:4)

Ant和Maven都可以运行JUnit 4测试。使用JUnit 3的唯一原因是遗留系统:您要么强制使用Pre-Java 5 JDK,要么您拥有依赖于JUnit 3并且不支持JUnit 4的大量工具。

答案 5 :(得分:3)

Maven没有明确约束Junit 3.81。您可以切换到您想要的任何版本的junit。如果您正在运行java 5,我认为您应该切换到至少4.4 Spring 2.5与4.5不兼容。