Java JUnit测试用例@Before和@After注释
我们遵循以下实践为我们的方法编写JUnit测试Java JUnit测试用例@Before和@After注释,java,unit-testing,junit,Java,Unit Testing,Junit,我们遵循以下实践为我们的方法编写JUnit测试 每个方法都有自己的类,其中包含该方法所需的所有测试。例如:类测试{…} @Before will包含针对“实体”等方法的每个必备项设置,这样当我们进行编辑时,就不需要复制/粘贴代码来在每个方法级别添加实体 现在我的问题是,我们应该删除我们通过编写代码在@after方法中丢弃测试数据而输入的所有数据,还是听其自然 我知道我们可以使其可配置,但最佳做法是什么?保留或删除它。根据我的直觉,如果数据库中已经存在一些重复数据,那么删除应该会更好—它可能会
- 每个方法都有自己的类,其中包含该方法所需的所有测试。例如:类测试{…}
- @Before will包含针对“实体”等方法的每个必备项设置,这样当我们进行编辑时,就不需要复制/粘贴代码来在每个方法级别添加实体
我知道我们可以使其可配置,但最佳做法是什么?保留或删除它。根据我的直觉,如果数据库中已经存在一些重复数据,那么删除应该会更好—它可能会触发错误的真或假。这取决于您对“不要重复自己”原则的坚持程度。还值得记住的是,在每个
@Test
之后调用@After
,在所有@Test
运行之后调用@AfterClass
。有了这种粒度,消除重复应该很简单,但仍然可以分割那些只应在最后或每次测试后运行的任务。作为最佳实践,我建议在每次测试之间清除数据存储,以确保每个测试与其他测试隔离
如果您希望保持某些设置处于活动状态(例如,从@BeforeClass
中),可以使用@After
方法完成此操作。也可以在@Before
方法中完成,例如,通过为每个测试使用新实例覆盖变量,如果这样做,则不需要在测试后进行清理
要清理@BeforeClass
方法的设置,您应该使用@AfterClass
例如关闭数据库连接或类似只需执行一次的操作。但这并不是每种单元测试都需要的