我正在使用带有spring的junit4来测试我的其余Web服务。 为此,我在内存数据库中使用HSQL。
要在每个测试用例之后清理记录,我将从表中删除所有记录。
但我想只删除插入的记录。 我在两个地方向数据库添加数据:
在Junit测试用例中。
在其他服务中。
我正在进行 http调用来测试服务。此外,我在休息服务中使用相同的内存数据库。
请帮助我在每个测试用例后仅删除插入的记录。
已编辑:我担心的是删除对rest服务的http调用中插入的记录。跟踪这些记录真的很难。它们是我实际代码的一部分。
答案 0 :(得分:1)
您可以使用@Before
和@After
方法来执行此活动。
请注意,@Before
将在每次测试之前执行,@After
将在每次测试后执行。所以@Before
您应该插入记录,现在您知道已经插入了哪些记录,仅在@After
如果你想为每个测试添加几个不同的记录,那么使用try .... finally
如下所示
class Test{
@Before
public void setUp(){
// insert x Records
}
@After
public void tearDown(){
// delete x Records
}
@Test
public void someTest() throws Exception {
// ... insert few records
try{
doSomething();
}finally{
// deleteRecordsInserted for this test.
}
}
}