集成测试中没有出现为我的存储库公开资源链接。它们在应用程序运行时看起来很好但在测试期间POST应该是一个有效的uri,它给出了一条带有消息的404
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
构造
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@DirtiesContext
@SpringBootTest(
classes = {ServletWebServerFactoryAutoConfiguration.class, AnsApplication.class, PostgreSQLConfiguration.class},
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT
)
@DataJpaTest
@EnableJpaRepositories(basePackages = {"xxx.xxx.xxx"})
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
请注意,此配置适用于使用注入存储库保存和检索实体的集成测试,针对存储库发布是问题所在。
答案 0 :(得分:0)
事实证明,与@DataJpaTest
注释存在一些互动,这也需要将ServletWebServerFactoryAutoConfiguration.class
添加到@SpringBootTest
列表中。这创建了一个没有注册端点的容器。
从配置列表中删除@DataJpaTest
和ServletWebServerFactoryAutoConfiguration.class
允许我使用TestRestTemplate进行集成测试。对于JPA特定的测试,我将把它们添加回来。