2013-02-06 84 views
3

我们正在遵循以下惯例为我们的方法编写JUnit测试。JUnit测试用例@Before和@After注释

  • 每个方法都有自己的类,它包含了该方法所需的所有测试。例如:class test {...}

  • @Before将包含像“Entity”这样的方法的必备设置,以便在编辑时我们不需要复制/粘贴添加实体的代码在每个方法级别。

现在我在这里的问题是,我们将删除我们进入了编写代码来垃圾测试数据@After方法,还是让它成为所有数据?

我知道我们可以使其可配置,但最佳实践是什么?保留或删除它。根据我的直觉,删除应该更好,因为如果db中有一些重复的数据 - 它可能触发错误的真或假。

回答

2

作为一个最佳实践,我建议在每次测试之间清除数据存储,以保证每个测试都与其他测试隔离。

如果您想保留一些设置(例如从@BeforeClass),则可以使用@After方法完成此操作。它也可以在@Before方法中完成,例如通过用每个测试的新实例重写变量,如果这样做,则在测试之后不需要清理。

要清理@BeforeClass方法的设置,应该使用@AfterClass例如关闭数据库连接或类似的东西,只需要完成一次。但这不是每种单元测试都需要的。

3

这取决于你坚持不要重复自己的原则。同样值得记住的是,在所有@Test已经运行之后调用每个@Test@AfterClass之后调用@After。有了这个粒度,删除重复应该很简单,但仍然应该分割那些只应在最后或每次测试之后运行的任务。