【发布时间】:2019-04-05 12:51:22
【问题描述】:
我是一个团队的一员,该团队正在为我们整个公司“开拓”使用协议。在这段旅程中,我们遇到了许多问题,这些问题主要是由于误解了 CDC-Testing 协议的使用。随着时间的推移,其中很多问题都可以解决,但仍有一些主要问题我无法找到任何好的解决方案或示例。由于我认为回答这些问题非常重要,因此我认为尝试直接与您联系可能会对我们有所帮助。
-
问题:在实施提供者测试时,我们应该在应用程序的哪个“层”实施我们的测试?
背景:当我们第一次开始使用 pact 添加 CDC 测试时对于我们的应用程序,我们通过启动包括内存数据库的应用程序上下文进行功能测试,并在该数据库中设置数据。这导致测试难以维护,另外我们实际上是在进行功能测试,而 pact 并不是为此而生的。在多次考虑如何实现测试的方法之后,我们最终只测试了我们的边界,其中包括其余接口和(充其量)输入和输出验证。 -
问题: 使用多个提供者状态背后的想法是什么?
背景: Pact 支持在一次交互中使用多个提供者状态。我们尝试了这个功能,但是我们的很多开发人员并不认为在多个提供者状态下有很大的优势。因此,我们使用 pact 进行的许多 cdc 测试都有冗长而复杂的提供程序状态描述。所以我认为我们不了解此功能的基本概念。 -
问题:参数化提供者状态背后的想法是什么?
背景:与之前的背景基本相同。我们尝试了此功能,但我们的许多开发人员决定不使用它。因为拒绝该功能是基于不完全理解该功能,所以我想知道这个功能被认为是用来做什么的。 -
问题:我们应该如何处理关于我们的版本控制策略的协议?
背景:目前,在官方pact documentation 中记录了处理应用程序之间的语义版本控制协议。我们使用 SNAPSHOT 版本控制,目前不能选择更改版本控制策略。此外,我们公司中的多个其他团队存在不同的版本控制策略。基本上不可能就一种策略达成一致。当我们谈论在整个公司中使用 cdc 和 pact 时,这意味着什么?这会导致什么问题?正确标记合同(主、功能、开发、生产……)能否解决版本控制方面的任何问题?
【问题讨论】:
标签: java spring-boot pact pact-jvm greybox