【发布时间】:2010-11-23 20:45:40
【问题描述】:
我熟悉 jUnit,听说 TestNG 可能是解决 jUnit 一些烦恼的方法 - 例如。它坚持为每个测试创建一个单独的测试类实例,从而迫使我对想要在测试之间重用的对象使用静态字段。
(假设你同意我的观点,这是一个缺点,不要把这个问题变成不是的)
我在这里要问的是,与 jUnit 相比,TestNG 有什么缺点?假设这是一个新项目并且没有任何迁移成本,为什么不使用 TestNG?
【问题讨论】:
-
您知道在测试之间重用对象会增加测试之间的耦合吗?耦合测试是良好单元测试的彻底祸根,因为它们允许一个测试的问题导致另一个测试失败(或异常)......
-
@Donal - 我们不要问这个问题。在编写包含大量组件的繁重集成测试时,不重用是另一个祸根,因为它会使测试运行花费数小时。
-
同意;这是一个附带问题。
-
在测试之间重用对象并不一定会增加测试之间的耦合,特别是如果这些对象是不可变的。这样做的好处是不必一遍又一遍地创建昂贵的对象。 TestNG 为您提供两种方法的选择,而 JUnit 则强制您选择其中一种。