每次使用http调用的junit测试用例后的数据库清理

时间:2015-05-14 10:24:41

标签: spring rest java-8 junit4 hsqldb

我正在使用带有spring的junit4来测试我的其余Web服务。 为此,我在内存数据库中使用HSQL。

要在每个测试用例之后清理记录,我将从表中删除所有记录。

但我想只删除插入的记录。 我在两个地方向数据库添加数据:

  1. 在Junit测试用例中。

  2. 在其他服务中。

  3. 我正在进行 http调用来测试服务。此外,我在休息服务中使用相同的内存数据库。

    请帮助我在每个测试用例后仅删除插入的记录。

    已编辑:我担心的是删除对rest服务的http调用中插入的记录。跟踪这些记录真的很难。它们是我实际代码的一部分。

1 个答案:

答案 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.
             }

            }

}