JUnit测试用例@Before和@After注解

3
我们遵循以下做法来编写我们方法的JUnit测试。
  • 每个方法都将有自己的类,该类包含该方法所需的所有测试。例如:class test {...}

  • @Before将包括对方法进行设置的先决条件,例如“Entity”,以便在进行编辑时,我们不需要在每个方法级别上复制/粘贴添加实体的代码。

现在我的问题是,我们应该通过编写代码将测试数据垃圾箱化@after方法中删除所有输入的数据,还是让它保留?
我知道我们可以使其可配置,但最佳做法是什么?保留还是删除。根据我的直觉,删除应该更好,因为如果数据库中已经有一些重复数据,则可能会触发错误的true或false。
2个回答

4

这取决于您遵循“不重复自己”原则的程度。同时也要记住,在每个@Test之后都会调用@After,在所有@Test运行后调用@AfterClass。通过这种粒度,应该很容易去除重复内容,但仍然可以拆分那些只在最后或每个测试之后运行的任务。


2
作为最佳实践,我建议在每次测试之间清除数据存储,以确保每个测试与其他测试隔离。
如果您想保留一些设置(例如来自@BeforeClass),可以使用@After方法来完成此操作。也可以通过在@Before方法中覆盖变量的方式来完成此操作,为每个测试创建一个新实例,这样就不需要在测试后进行清理。
要清除@BeforeClass方法的设置,您应该使用@AfterClass方法,例如关闭数据库连接或类似的操作,这些操作仅需要执行一次。但是,并非每种单元测试都需要这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接