我正在为一些遗留代码编写一些集成测试。为确保函数按预期运行,我需要设置虚假数据,调用测试API,然后清理数据。
由于政策原因,我们只能通过Hibernate和MyBatis等工具访问数据库,从不直接连接。但是,我们在DAO上的delete()
方法总是采用软删除方式(即打开is_delete
标志。)因此清理实际上只是打开is_delete
标志,假数据仍在那里!
那么,我应该添加"真正删除"用于集成测试的DAO方法,还是有更好的方法来处理这个问题?
答案 0 :(得分:0)
添加真正的删除方法没有任何问题 - 毕竟,集成测试的重点是将所有组件一起测试,以便模拟实际使用它们的方式。
我只是确保如果你这样做,你首先要添加你知道不会重复的记录。然后,您可以断言这些记录存在于数据库中,删除它们并断言它们不再存在。这样您就可以确保测试永远不会删除真实数据。