无法在集成测试中发布到Spring Data Rest RepositoryRestResource

时间:2018-06-05 05:31:31

标签: spring-boot spring-data-jpa spring-data-rest

集成测试中没有出现为我的存储库公开资源链接。它们在应用程序运行时看起来很好但在测试期间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)

请注意,此配置适用于使用注入存储库保存和检索实体的集成测试,针对存储库发布是问题所在。

1 个答案:

答案 0 :(得分:0)

事实证明,与@DataJpaTest注释存在一些互动,这也需要将ServletWebServerFactoryAutoConfiguration.class添加到@SpringBootTest列表中。这创建了一个没有注册端点的容器。

从配置列表中删除@DataJpaTestServletWebServerFactoryAutoConfiguration.class允许我使用TestRestTemplate进行集成测试。对于JPA特定的测试,我将把它们添加回来。