在每个带有 http 调用的 junit 测试用例之后进行数据库清理
Posted
技术标签:
【中文标题】在每个带有 http 调用的 junit 测试用例之后进行数据库清理【英文标题】:Database Cleanup after every junit test cases with http calls 【发布时间】:2015-05-14 10:24:40 【问题描述】:我正在使用带有 spring 的 junit4 来测试我的其余 Web 服务。 为此,我在内存数据库中使用 HSQL。
为了在每个测试用例之后清理记录,我将从表中删除所有记录。
但我只想删除插入的记录。 我在两个地方向数据库添加数据:
在 Junit 测试用例中。
在其余服务中。
我正在进行 http 调用 来测试服务。另外,我在休息服务中使用相同的内存数据库。
请帮助我在每个测试用例之后仅删除插入的记录。
已编辑:我担心的是删除在 http 调用中插入的记录以调用其余服务。跟踪这些记录真的很难。它们是我实际代码的一部分。
【问题讨论】:
【参考方案1】:您可以使用@Before
和@After
方法来执行此活动。
注意@Before
会在每次测试之前执行,@After
会在每次测试之后执行。所以@Before
你应该插入记录,现在你知道插入了哪些记录,只删除@987654326中的记录@
如果你想为每个测试添加几个不同的记录,那么使用 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.
【讨论】:
感谢您的回答。我想到了这个。我担心的是删除在对休息服务的 http 调用中插入的记录。跟踪这些记录真的很难。它们是我实际代码的一部分。以上是关于在每个带有 http 调用的 junit 测试用例之后进行数据库清理的主要内容,如果未能解决你的问题,请参考以下文章