【问题标题】:JUnit 5 Search Rest api testingJUnit 5 Search Rest api 测试
【发布时间】:2020-01-08 04:55:51
【问题描述】:

如何使用 JUnit 5 测试 findByTargetProject 方法。

@Repository
public interface suiteRepository extends JpaRepository<suiteInformations, Long> {
    suiteInformations findByTargetProject(String url);
}

我尝试过这种方式,但收到 404 响应。

@Test
public void findByTargetProjectTest() throws Exception { 

    Mockito.when(suiteRepository.findByTargetProject(Mockito.anyString())).thenReturn(suiteInformation);
    RequestBuilder requestBuilder = MockMvcRequestBuilders.get(
                "/suiteInformationses/search/findByTargetProject?url=xyz").accept(
                MediaType.APPLICATION_JSON);

    MvcResult result = mockMvc.perform(requestBuilder).andReturn();
    System.out.println(result.getResponse().getStatus());
}

【问题讨论】:

  • 分享你的控制器类。您正在发出一个 HttpServlet 请求,该请求应该到达控制器而不是存储库。
  • 我觉得不需要控制器,spring boot 自动为此提供了一个 api 并且工作正常。
  • 能否分享您开发测试代码所依据的任何参考资料?
  • 你不应该模拟你想要测试的方法。而且您没有为我们提供足够的信息来帮助您。请创建一个MRE

标签: spring spring-boot junit5 spring-boot-test springmockito


【解决方案1】:

请注意,您创建的@Repository 根本没有实现,因为逻辑是由Spring 在幕后处理的,那么您想在这里使用单元测试来测试什么?

如果您确实想确保您在存储库中引入的方法按预期工作,请创建一个集成测试并验证其在真实数据上的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-07
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    相关资源
    最近更新 更多