Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit测试用例@Before和@After注释_Java_Unit Testing_Junit - Fatal编程技术网

Java JUnit测试用例@Before和@After注释

Java JUnit测试用例@Before和@After注释,java,unit-testing,junit,Java,Unit Testing,Junit,我们遵循以下实践为我们的方法编写JUnit测试 每个方法都有自己的类,其中包含该方法所需的所有测试。例如:类测试{…} @Before will包含针对“实体”等方法的每个必备项设置,这样当我们进行编辑时,就不需要复制/粘贴代码来在每个方法级别添加实体 现在我的问题是,我们应该删除我们通过编写代码在@after方法中丢弃测试数据而输入的所有数据,还是听其自然 我知道我们可以使其可配置,但最佳做法是什么?保留或删除它。根据我的直觉,如果数据库中已经存在一些重复数据,那么删除应该会更好—它可能会

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

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

  • @Before will包含针对“实体”等方法的每个必备项设置,这样当我们进行编辑时,就不需要复制/粘贴代码来在每个方法级别添加实体

现在我的问题是,我们应该删除我们通过编写代码在@after方法中丢弃测试数据而输入的所有数据,还是听其自然


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

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

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

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

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