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

如何在Spring Boot应用程序的外部客户端上使用WireMock?

董高朗
2023-03-14

我有一个类,它使用了一个FIGEN客户端。以前,我使用Mockito,并为每个方法调用提供了一个存储的响应。现在我想使用WireMock,这样我就可以看到我的代码正确处理不同类型的响应代码。我该怎么做呢?我不知道如何在测试中连接我的Faignn客户端,并连接它,使它使用WiRemote ck而不是我在我的application.yml文件中设置的网址。任何建议都将不胜感激。

共有1个答案

孟鹏海
2023-03-14

也许你想看看这个项目https://github.com/ePages-de/restdocs-wiremock

这有助于在SpringMVC测试中生成和发布wiremock片段(使用SpringREST文档)。

最后,您可以使用这些代码片段启动wiremock服务器,以便在测试中为这些记录的请求提供服务。

如果您回避这个集成的解决方案,您可以在测试过程中使用wiremck JUnit规则来启动您的wiremck服务器。http://wiremock.org/docs/junit-rule/

下面是一个使用动态wiremock端口并将ribbon配置为使用此端口的示例测试:(您使用的是Faign和ribbon吗?)

    @WebAppConfiguration
    @RunWith(SpringRunner.class)
    @SpringBootTest()
    @ActiveProfiles({"test","wiremock"})
    public class ServiceClientIntegrationTest {

        @Autowired //this is the FeignClient service interface
        public ServiceClient serviceClient;

        @ClassRule
        public static WireMockRule WIREMOCK = new WireMockRule(
                wireMockConfig().fileSource(new ClasspathFileSource("path/to/wiremock/snipptes")).dynamicPort());

        @Test
        public void createSome() {
            ServiceClient.Some t = serviceClient.someOperation(new Some("some"));
            assertTrue(t.getId() > 0);
        }

//using dynamic ports requires to configure the ribbon server list accordingly
        @Profile("wiremock")
        @Configuration
        public static class TestConfiguration {

            @Bean
            public ServerList<Server> ribbonServerList() {
                return new StaticServerList<>(new Server("localhost", WIREMOCK.port()));
            }
        }
    }
 类似资料:
  • 问题内容: 我对React还是很陌生,我正在开发一个应用程序,它将获取网页的实际屏幕截图,并且该应用程序可以在所截取的屏幕截图之上绘制并添加涂鸦。最初,我使用html2canvas和domToImage拍摄客户端屏幕快照,但它无法完全呈现网页中显示的图像。 Reddit用户/ pamblam0建议我调查Google的Puppeteer。它的工作方式是启动无头铬浏览器,该浏览器转到我在本地主机上的r

  • 我有一个假客户端,它从微服务请求令牌。由于我正在进行多次调用,我希望缓存从外部客户端收到的响应并使用Spring Guava缓存,但它似乎不起作用。我所拥有的只是外部客户端上的配置类和注释。 我在堆栈溢出的某个地方读到,Fegn可能不支持@Cacheable注释。这是真的吗?

  • 我想: 1.在远程机器上停止tomcat服务器(视窗服务器2012) 2.删除/清理服务器上的战争(从webapptomcat文件夹) 3.在Tomcat上部署战争文件(将其复制到webapptomcat文件夹) 4.复制客户端jar文件和jnlp文件到webapps tomcat文件夹 5.启动Tomcat 我的想法是使用ftp复制文件(我在Windows Server 2012上启用了此功能)

  • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em

  • 我需要一个用于java spring应用程序的graphQL客户端,以与另一个基于graphQL API的微服务通信。我知道Apollo Android,但它似乎没有用maven实现(也许你知道maven的一些链接或示例等)。有什么想法和建议吗?提前感谢!

  • 问题内容: 我正在使用ROS开发用于多机器人系统的GUI,但是我在界面中的最后一件事就是冻结:将RVIZ,GMAPPING或其他屏幕嵌入到我的应用程序中。我已经在界面中放置了一个终端,但是无法绕开如何向我的应用程序添加外部应用程序窗口的问题。我知道PyQt5具有createWindowContainer,它使用窗口ID来停靠外部应用程序,但是我没有找到任何示例来帮助我。 如果可能的话,我想在应用程