【发布时间】:2018-12-19 00:47:39
【问题描述】:
我有使用 Spring 的 jdbcTemplate 和创建读取更新(无删除)操作的 DAO。
创建方法有 ID 参数,它是表中的唯一键。
除了 mocking DAO,我如何才能真正测试 create 而不会违反约束?
使用随机 ID 有时仍然会失败
我应该覆盖 setAutoCommit 以避免添加记录吗?它仍然认为是有效的单元测试吗?
我必须事先在 SQL 中删除数据库中的记录还是这种类型的测试有 spring 选项?
或者我应该将其视为集成测试而不是单元测试?
编辑
我使用的是 Oracle,我不能使用序列来为 ID 创建值
我们在生产中存在一些数据源(不用于测试)
【问题讨论】:
-
查看 Enabling and Disabling Transactions 的官方 Spring Framework 参考文档。仅使用
@Transactional就足够了
标签: java spring unit-testing dao jdbctemplate