具有重写DAO类的Spring Framework集成测试

时间:2019-01-19 13:42:04

标签: java spring testing integration-testing

我在Spring中设置集成测试以测试我的API端点是否正常运行。 没有代码,因为该问题是设计问题。

现在我有一个特定的DAO类,它与真实的DB进行IO操作对话。

我有一个简单的内存资源存储实现,无需任何数据库设置即可进行测试。

我的问题是我应该如何在Spring中配置测试,以便资源存储由内存中的存储实现来完成。 (我需要模拟http请求并断言它们可以正常工作,现在测试已经启动并正在运行,但是资源存储是使用DAO在真正的db上完成的)

P.S。我可以将application.properties中的实际数据库替换为可以与当前DAO一起使用的H2数据库,但是我不需要将该更改放入DB层中,我需要将其放在DAO层中以使用其他资源存储类的实现。

我对Spring测试还比较陌生,并且正在使用jUnit进行测试。

非常感谢。感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

如果要在测试中覆盖bean(使用其他实现),则可以创建另一个Spring上下文(在测试类或资源中),在其中创建具有相同ID 的bean。

如果您使用XML,那就足够了,在测试中声明上下文时,只需按正确的顺序放置它们即可。如果您使用Java配置-您可能需要通过将伪bean标记为@Primary

来确保使用测试实现。