我有一个类,它使用ThreadPoolTaskExecutor来分离与数据库交互的任务。我对该任务的集成测试失败,我认为因为它们依赖于通过DataSourceTransactionManager插入的测试数据,并且衍生线程没有从主类中看到事务,因此不会从数据库中检索任何内容。有没有办法让线程看到插入的测试数据,而不必提交事务并在以后删除测试数据?
答案 0 :(得分:0)
将测试数据插入测试数据库是一种非常常见的模式,测试数据库在测试结束时在finally
块中清除。如果你编辑你的问题并提供其他理由来反对该解决方案,我会编辑我的答案。
setup()
方法(通常是创建测试数据库表)是另一个很好的地方,可以确保在插入测试数据之前清除新表中之前测试的任何剩余数据。
希望这有帮助。