【问题标题】:Mock/not-mock response on a per request basis in Integration test集成测试中基于每个请求的模拟/非模拟响应
【发布时间】:2021-02-05 12:31:19
【问题描述】:

我正在编写集成测试。我需要一个积极的测试用例请求在哪里击中实际服务并收到响应。但是对于一个否定的测试用例,我必须得到模拟的响应。

我很想知道是否有一种方法可以在每个配置的基础上模拟/不模拟请求。例如,如果请求接受请求中的电子邮件地址并且我提供

  1. "invalid@email.com" - 来自 mockoon 的响应必须是模拟响应。
  2. "valid@email.com" - 不能进行模拟,而是必须访问实际服务器才能获得响应。可能是通过重定向或调用实际服务并将响应响应给调用者。

我已尝试过 Mockoon,但功能尚不存在。所以试图从社区中获得帮助:)

问候,

【问题讨论】:

    标签: java c# mocking integration-testing wiremock


    【解决方案1】:

    您可以使用与不同电子邮件匹配的单独存根/映射。 假设你的 url 是 some-Url 并且使用 email 的 queryParameter...

    {
        "request": {
            "url": "/some-Url",
            "queryParameters": {
                "email": {
                    "equalTo": "invalid@email.com"
                }
            }
        },
        "response": {
            "status": 200
        }
    }
    
    {
        "request": {
            "url": "/some-Url",
            "queryParameters": {
                "email": {
                    "equalTo": "valid@email.com"
                }
            }
        },
        "response": {
            "proxyBaseUrl": "http://my-other-url.com"
        }
    }
    

    【讨论】:

      【解决方案2】:

      mockswitch 可以做到这一点——它支持各种请求/响应对,有点像开关盒。您可以定义不同的案例并根据每个案例进行请求匹配。如果一个案例匹配,它会中断响应流并做出响应。也很容易根据特定情况将请求代理到实际服务。

      他们的文档可以在这里找到https://mockswitch.com/docs/#switch-case-responses

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        • 2022-07-12
        相关资源
        最近更新 更多