集成测试中基于每个请求的模拟/非模拟响应

问题描述

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

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

  1. "invalid@email.com" - 来自 mockoon 的回复必须是模拟回复
  2. "valid@email.com" - 模拟不得发生,而是必须命中实际服务器才能获得响应。可能是通过重定向调用实际服务并响应调用者的响应。

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

问候,

解决方法

您可以使用匹配不同电子邮件的单独存根/映射。 假设您的网址是 some-Url 并使用电子邮件的 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"
    }
}