数据库单元:测试插入和更新操作

时间:2014-06-30 13:36:33

标签: java unit-testing junit dbunit

如何使用数据库单元测试INSERTUPDATE操作?
我使用fixture数据xml来测试读取操作。
这是否意味着测试用例会在xml中插入/更新一行?如果是,DBUnit是否提供了与xmld一起使用的任何实用程序? 已经有测试方法,测试表是否返回一条记录或多条记录。在这些读取案例中,通过比较ITable来完成测试。我不确定在创建操作的情况下断言是什么。行数?
同样的问题与Update操作有关。在进行更新后,测试用例应该断言什么?

2 个答案:

答案 0 :(得分:3)

  

如何使用数据库单元测试INSERTUPDATE操作?

INSERT上,验证行计数为+1并运行SELECT搜索插入的记录。

UPDATE上,通过在SELECT之前和之后运行UPDATE来验证更新的记录是否与旧记录不匹配。

  

我正在使用灯具数据xml来测试读取操作   这是否意味着测试用例会在xml中插入/更新一行?

没有。 DbUnit读取XML文件并在内存中创建它的快照。您的插入和更新是在内存中完成的,因此XML永远不会被修改。

  

我不确定在创建操作的情况下断言是什么。行数?
  同样的问题与Update操作有关。在进行更新后,测试用例应该断言什么?

见问题1的答案。

也可以使用http://dbunit.sourceforge.net/作为参考。

答案 1 :(得分:0)

您可以将@ExpectedDatabase注释与适当的assertMode

一起使用

e.g。

@Test
@ExpectedDatabase(value = "result-data.xml")
public void testInsertion() {
    ...
}