Karate 如何在合约测试中管理“有状态”模拟?

问题描述 投票:0回答:1

基于Karate的示例文档,最终我们将使用KC(

payment-service.feature
)和KP(
payment-service-mock.feature
)进行测试。我有两个问题:

  1. KP是谁定义的?是生产者定义的还是消费者定义的?如果KP是由消费者定义的,那么KP中的场景可能会明显少于KC中的场景,从而导致由于缺少模拟场景而导致测试失败。如果KP是由生产者定义的,那么它可能不包括消费者定义的最新场景,因此问题可能不会暴露。

  2. 如何解决KP中场景缺失的问题?KC是否应该分层,由不同的消费者定义不同的KP,运行不同的KC?但这种方法也需要 KC 与消费者保持一致。

有什么方法可以进行合并或拆分操作吗?

karate
1个回答
0
投票

这个问题很有趣,我只是给你我的意见。

  • 我认为整个“消费者与生产者”的概念被高估了。制作人团队“拥有”服务器并负责编写涵盖其所有功能的测试。应该没那么简单吧?
  • 两个团队是否属于同一组织?然后只需使用相同的 Git 存储库并要求消费者添加任何缺少的测试即可。
  • 否则制作团队应该以“开源”方式发布测试套件和相应的模拟。事实上,很少有团队达到这种成熟度。您必须让团队相信他们不仅需要编写测试,还需要编写模拟。也很难获得消费者团队的认可,例如他们应该实际使用模拟并验证他们的流程(合同)没有被破坏。
  • 就其价值而言,可以将模拟文件合并为一个,这是社区贡献,您可以看看它是否适合您。
© www.soinside.com 2019 - 2024. All rights reserved.