当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Boot集成测试中模拟rest客户端

郤坚诚
2023-03-14

在用@SpringBootTest注释并使用@RunWith(SpringRunner.class)运行的Spring启动集成测试中,我可以通过@Autowired TestRestTemplate restTemplate和restTemplate.postForEntity(...)将真正的http post调用放到我的rest控制器。

这工作正常,就在控制器的末端 -

共有1个答案

周育
2023-03-14

您可以使用ReflectionTestUtils在< code>@Before中注入模拟

@Inject
private Service service;

@Mock
private RestClient restClient;

@Before
public void setup() {
    ReflectionTestUtils.setField(service, "restClient", restClient);
}
 类似资料:
  • 已删除MyTestConfig.class,但问题仍然相同。即使我使用@SpringBootTest(classes={Application.Class,MyProblematicServiceImpl.Class}),它仍然在自动连线的地方返回模拟对象。MyProblematicServiceImpl是用@Service注释的空类。

  • 我正在用两个应用程序做project:android应用程序(客户端)和rest服务(服务器)。我的android应用程序消耗了我的rest服务。 这两个应用程序都是单独测试的,以确保它们按照预期完成业务。在服务器测试期间,我准备请求并检查服务器响应。在客户机测试期间,我设置了一个简单的http模拟服务器,并针对不同的模拟响应测试客户机的请求。 现在,这个技术很管用。它给了我一种我喜欢的灵活性。我

  • 如何模拟集成测试所需的许多依赖关系? 我使用Mockito进行纯单元测试。在这种情况下,Pure意味着测试一个类,嘲笑它的所有依赖关系。漂亮。 现在是集成测试。假设在这种情况下,集成测试将测试以下内容: 消息被放入队列 我们也可以说,在第2步中发生的处理是严肃的事情。它依赖于大量的数据库交互、多种外部服务、文件系统,以及各种各样的东西。流还会引发很多副作用,所以我不能简单地确保响应是正确的——我需

  • 我发现可以使用以下方法模拟和: 它工作得很好,但当我尝试运行集成测试时,授权服务器仍然需要启动并运行。否则,Quarkus无法连接到它。 我试图禁用OIDC扩展(),但是代码当然不能编译(endpoint不能识别依赖项)。 那么,在运行集成测试时,哪一种方法是跳过OIDC连接的最佳方法呢? 最好的,

  • Quarkus入门unittest描述了如何模拟注入的服务。然而,当试图将此应用到注入的rest客户机时,这似乎不起作用。 在我的应用程序中,要注入的class属性是这样定义的 在我的测试代码中,我创建了一个模拟服务,如下所示: MISL

  • 问题内容: 我正在使用RestTemplate 方法发布到端点。在我的测试文件中,我正在测试POST方法。但是用我目前的测试,我得到了POST请求。在测试文件中发出POST请求时,我需要模拟API的帮助 这是我的主文件 这是我的测试文件 问题答案: 您正在测试DataTestRepo类内部的逻辑,因此您不应模拟它。RestTemplate是DataTestRepo内部的一个依赖项,因此这正是您需要