我应该在 DAO 上添加一个"real-delete"方法进行集成测试吗?



我正在为一些遗留代码编写一些集成测试。为了确保函数按预期运行,我需要设置假数据,调用测试 API,然后清理数据。

由于政策原因,我们只能通过Hibernate和MyBatis等工具访问数据库,而不能直接连接。但是,我们在 DAO 上的delete()方法始终是软删除样式(即打开 is_delete 标志)。所以清理实际上只是打开is_delete标志,假数据仍然存在!

那么,我应该在 DAO 上为集成测试添加一个"实时删除"方法,还是有更好的方法来解决这个问题?

添加真正的删除方法并没有错 - 毕竟,集成测试的目的是一起测试所有组件,以模拟它们的实际使用方式。

我只是确保如果你这样做,你首先添加你知道不会重复的记录。然后,您可以断言这些记录存在于数据库中,删除它们,并断言它们不再存在。这样,您就可以确保测试永远不会删除真实数据。

最新更新