我们有一种情况,我们有一个托管 10-20 个 API 的应用程序,我们计划为其实施接触测试。每个 Api 对消费者应用程序有一个 pact 还是对作为提供者的应用程序有一个 pact 并且每个 Api 作为单独的交互会更好吗?
回答1
pact(合同)通常在两个应用程序之间。如果提供者应用程序提供多个端点或资源(我认为您将其称为“API”),那么它们将被建模为一个或多个交互(测试用例)。
...或者一个 pact 用于充当提供者且每个 Api 充当单独交互的应用程序?
这就是你想要的,我想。
回答2
有一些流行的 CDC(Consumer Driven Contracts) 测试解决方案,Spring 提供了与 Spring 紧密集成的 Spring Cloud Contracts,Pact 是 CDC 的另一个很好的解决方案。
在https://github.com/hantsy/spring-microservice-sample中,我提供了使用Pact 和Spring 云合约的示例。
API 消费者(使用 API)和提供者(提供 API)双方维护合约以确保 API 的一致性。
理想情况下,每个 API 的合同应该针对每个消费者(如果您遵循 B4F 模式,否则我们可以忽略与消费者的差异)和每个版本。例如。用户客户端 v1.0 和 v2.0 可能不同。