【问题标题】:spring mock mvc tests with api being invoked from external system从外部系统调用 api 的 spring mock mvc 测试
【发布时间】:2018-12-19 15:55:30
【问题描述】:

我有一个通过 MockMvc 存根的 api(API 1)。当我通过这个模拟对象在这个 API 上发布时,一个请求会发送到外部系统,而外部系统又会调用我系统的 api (API 2)。由于此 API 2 是通过 http 通道 (host:port) 调用且容器未运行,因此会中断。我如何处理这种情况,因为我不想改变外部系统调用我的 API 的方式。希望我已经澄清了。

【问题讨论】:

  • 你是否也使用过 Spring Boot?
  • @SamBrann 是的

标签: spring mockmvc spring-test-mvc


【解决方案1】:

如果您使用MockMvc,则无法通过网络测试呼叫。

因此,在这种情况下,您需要模拟或存根执行外部网络调用的组件。

另一方面,如果您使用的是 Spring Boot……那么您可以让 Spring Boot 的测试支持启动嵌入式 Servlet 容器进行测试,并且外部调用可以通过 HTTP 连接到正在运行的 Servlet 容器。但是,为此,您通常会使用类似 Spring Boot 的 TestRestTemplate 或核心 Spring 的 WebTestClient(自 Spring Framework 5.0 起可用)而不是 MockMvc

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 2016-07-19
    • 2022-12-05
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多