当前位置: 首页 > 知识库问答 >
问题:

将Spring Cloud合同存根控件与手动创建的存根一起使用

庄星汉
2023-03-14

我不确定将Spring-云-合约用于我在标题中提到的目的是否正确,但我想了解它在这种情况下的用例。

我们正在更新我们的集成测试以使用Spring Cloud合同。对于新功能,我们遵循从YAML/Groovy创建存根的留档,然后在消费者端使用spring-Cloud-starter-code-stob-的存根运行。

我担心的是已经编写并正在使用的存根。我们不想花时间在Groovy/YAML中重新编写它们以使Spring Cloud合同生成存根,因为我们已经有存根了。现有的测试配置如下:

@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
    classes = Application.class
)
@AutoConfigureWireMock(port = 8989, stubs = "classpath*:**/stubs/mappings/**/*.json", files = "classpath*:**/stubs")
class MyClientIT { ... }

当谈到将此测试更改为使用spring cloud contract时,我一直纠结于如何配置存根运行器:

@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
    classes = Application.class
)
@AutoConfigureMockMvc
@AutoConfigureStubRunner(???)
public class MyNewClientIT {...}

在这种情况下,是否可以并建议使用春云合约?如果是这样,我们如何使存根运行器查看本地存储(而不是在本地或远程存储为工件)存根?

谢谢你…

共有1个答案

万嘉熙
2023-03-14

最简单的方法是获取存根并重新打包它们以遵循 META-INF/group.id/artifactid/mappings/... 文件夹结构。然后,您可以使用存根运行程序类路径模式通过 id 选取这些存根。

 类似资料:
  • 我希望在当前测试的文件中存根一个函数。此函数在进行如下分解时是必需的: 在测试时,永远不会调用存根,而是继续调用实际函数。但当我“正常”需要它时(即:不进行分解) 然后正确使用存根,一切正常 我感觉到这是因为析构是如何工作的,事实上存根是对象属性,而不是直接的函数。无论如何,如果你能给我提供一些见解,我将不胜感激!

  • 如何生成存根或创建此文件夹?

  • 我一直在修补Spring Cloud配置,但有一个用例,其中配置属性分为两种类型: > 非机密值,开发人员应该能够查看和维护这些值。JDBC的URL等) 秘密值,只能由具有特殊访问权限(如密码)的指定人员查看和维护 因此,我对“复合环境存储库”的支持非常感兴趣,它目前在快照版本中可用。我似乎可以将Git用于开发人员管理的属性,将Vault用于机密属性,并对其进行配置,以便在发生冲突时Vault始终

  • 问题内容: 我正在尝试创建文件并将其保存到站点的根目录,但是我不知道它在哪里创建文件,因为看不到任何文件。而且,如果可能的话,我需要每次都覆盖该文件。 这是我的代码: 如何设置保存在根目录下? 问题答案: 它在与脚本相同的目录中创建文件。试试这个吧。

  • 我有以下要测试的对象: 这是我的测试: 我正在覆盖特定参数的匹配器。我正在存根方法,以便它为特定参数返回一个值,否则抛出一个IOException,该IOException由MyObject处理。读取文件。 奇怪的是,第二个存根()在第一个存根()中抛出IOException集。我通过在第一个存根中抛出不同的异常来验证这一点。 有人能解释一下为什么在添加其他存根时会引发异常吗?我认为创建存根不会调

  • 我在获取一个sinon存根以返回/解析另一个sinon存根时遇到问题。我正在使用西农、柴、柴和摩卡。 我正在按顺序执行许多异步任务,我想测试的代码看起来像这样: 我尝试为此创建存根的尝试如下所示: “saveit”方法在Terminal.prototype,这就是为什么我需要在那里存根它。当我尝试运行它时,我收到错误消息: 在线上: 但如果我在控制台中转储终端对象,它看起来很好,就像任何其他存根对