例如,在我将数据源设置为实际数据库并使用@DatabaseSetup将其设置为某个状态后,会发生以下哪种情况?
1)DBUnit连接到实际数据库,删除所有内容,插入@DatabaseSetup中指定的记录,测试案例然后回滚。
2)DBUnit以某种方式基于数据源创建内存数据库,设置内存数据库。实际数据库中没有任何变化。
3)魔术。
DBUnit如何工作? 感谢。
答案 0 :(得分:0)
DBUnit完全按照您的要求执行。如果将它连接到真实数据库,那么是的,它将作用于真实数据库。如果你告诉它对内存数据库采取行动,那么它将会做什么。
如果你让它做一个CLEAN_INSERT,那么它将擦除你要求它加载的数据集中指定的所有表中的所有数据,然后加载数据集,然后它将删除已加载的数据集。它在开始时擦除的数据不会被放回原位。
如果您正在使用DBUnit进行测试,通常不会将其指向真实(即生产)数据库。相反,您可以创建某种类型的副本并指向它。该副本可以是数据库的真实实例,内存中的内容,可以填充虚拟数据或真实数据的副本。