我有一个接收请求、生成电子邮件、将电子邮件保存到消息队列(由其他微服务发送)并返回 httpStatus.Ok 的服务。我想测试是否会针对不同的请求生成相关的电子邮件。
根据合同测试与功能测试 ,我的测试是功能性的,而不是合同测试。(如果我的服务会将电子邮件内容作为 api 响应返回,那么使用 Pact 进行合同测试肯定是合适的)。
我有一个使用 Pact 基础设施进行此类功能测试的想法,特别是
1.将请求和预期生成的电子邮件保存到 Pact Broker
2.在提供者验证测试中提交请求并使用预期的电子邮件验证生成的电子邮件。
在这样的功能测试中使用 Pact 有意义吗?
有谁知道类似用法的例子?
任何替代技术(最好在 .Net Core 中)进行类似测试?
我也在考虑 https://github.com/approvals/ApprovalTests.Net,但 Pact 基础设施更吸引我。
相关说明:Pact 通常适用于 http 请求/响应,但 Pact V3(尚未由 PackNet实现)为通过事件流和消息队列进行通信的服务引入了消息。一个描述消息协定合同测试的示例是 https://dius.com.au/2017/09/22/contract-testing-serverless-and-asynchronous-applications/由 Pact 为 MessageQueue 引用的:MessageQueues 的示例提供程序测试