aws服务之间的契约合同测试



我正在尝试了解如何使用Pact来测试两个服务之间基于消息的通信。

假设我有两个Lambda A和B,其中A使用DynamoDB流进行通信,所以如果我插入一个项目

{"hello":"world"}

则这将触发到B的消息,该消息将以以下格式进行编组

{"hello":{"S":"world"} 

其在字段CCD_ 1中是可访问的。在这种情况下,Pact将如何帮助我确保B在两个对象相差如此之大的情况下真正得到预期的结果?

在这种情况下,我已经知道消息会被整理,但这是一个很容易错过的东西,理想情况下,这是我想用一个将自己作为合同测试工具进行营销的工具来涵盖的类型。

我没有尝试过测试DynamoDB流。虽然理论上这应该是可能的,但在实践中,可能很难以可靠和孤立的方式运行测试的提供者端,因为你不能控制提供者——也就是说,你可能需要做一些奇怪的事情来触发DynamoDB向流发出,并将其传递给Pact进行验证。

关键的技巧是去除任何";协议";测试中的特定元素,在这种情况下,相信AWS将始终遵守其规定的接口。因此,它与您想要做的事情保持一致(只需检查有效负载(。

我没有更好的答案,但你可能会从中找到灵感https://docs.pact.io/getting_started/how_pact_works#how-编写有关一般方法的更多信息协定测试,以及https://docs.pactflow.io/docs/examples/kafka/java/consumer以卡夫卡为例。

最新更新