【发布时间】:2018-11-04 19:48:42
【问题描述】:
我在2.1.0版本开始学习Spring Boot,做了一个简单的应用Controller->Service->Repository->Database(H2)。非常非常简单的应用程序,只需从 Spring Boot 开始。
我已经读过,在那个框架中,我可以在 src/resources 下添加一个文件 data.sql 我可以在其中定义插入/更新等,然后运行我的将存储数据的应用程序。一切正常,但是当我想为我的服务编写测试时,只是为了检查我的存储库是否正常(我为了学习目的而测试数据库)我看到当我在我的数据库中运行我的测试时,已经有来自 data.sql 的值,但我在 test 文件夹下没有 data.sql 。它在 src 下。
也许有人知道,如何配置项目不从 src/resources 获取这个 data.sql?可能吗?也许我必须添加更多注释?
**** 编辑 ****
【问题讨论】:
-
您确定 db 存在于您的应用程序之外,并且当您运行测试时它只是从数据库中获取数据?或者它是内存数据库?如果你不想使用数据库中的数据,你应该模拟你的存储库
-
我使用内存数据库。为什么当我运行我的 ServiceTest SpringBoot 扫描我的应用程序结构时,即使 ServiceTest 在 test/
/ServiceTest 下它也需要在 src/resources 下的 data.sql? -
而且我确信它会从我的内存数据库中获取数据,因为在 data.sql 中我有 2 次插入,而在我的测试中,当我测试例如“getAll()”时,我期望 0结果,但我得到了 2。
-
顺便问一下你在测试中是怎么使用repository的?
-
我链接了我的repo,你可以查看。
标签: java spring spring-boot spring-data-jpa spring-boot-test