3

我们遵循以下实践来为我们的方法编写 JUnit 测试。

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

  • @Before 将包含诸如“实体”之类的方法的必要设置,因此当我们进行编辑时,我们不需要复制/粘贴代码来在每个方法级别添加实体。

现在我的问题是,我们应该通过在@after 方法中编写代码来丢弃测试数据来删除我们输入的所有数据,还是就这样?

我知道我们可以使其可配置,但最佳实践是什么?保留或删除它。根据我的直觉,删除应该更好,就好像数据库中已经有一些重复的数据一样——它可能会触发错误的真或假。

4

2 回答 2

4

这取决于您对“不要重复自己”原则的坚持程度。还值得记住的是,您@After在每个都调用过@Test并且@AfterClass在所有@Test运行后调用过。使用这种粒度,删除重复应该很简单,但仍然拆分那些应该只在最后或每次测试之后运行的任务。

于 2013-02-06T19:41:55.940 回答
2

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

@After如果您想保持某些设置处于活动状态(@BeforeClass例如),可以使用该方法完成此操作。它也可以在@Before方法中完成,例如通过为每个测试使用新实例覆盖变量,如果这样做,则不需要在测试后进行清理。

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

于 2013-02-06T20:01:06.347 回答