Spring boot 其他服务的REST调用的Spring集成测试

Spring boot 其他服务的REST调用的Spring集成测试,spring-boot,integration-testing,spring-test,Spring Boot,Integration Testing,Spring Test,我一直在网上搜索它,但我发现的大多数示例都在同一个项目中具有rest调用的返回逻辑,但是如果您想测试您在项目中使用的其他服务的rest调用(从rest api调用rest api),该怎么办 有没有办法整合这一点。某个外部服务的REST调用的集成测试 在这种情况下,正常的集成测试方法是否可行。您考虑过使用SpringCloudContract()吗?这是一个专门为此目的而设计的项目 你有API的生产者和消费者。Spring云契约和消费者驱动契约方法的思想是这样的,消费者建议生产者的API应该是什

我一直在网上搜索它,但我发现的大多数示例都在同一个项目中具有rest调用的返回逻辑,但是如果您想测试您在项目中使用的其他服务的rest调用(从rest api调用rest api),该怎么办

有没有办法整合这一点。某个外部服务的REST调用的集成测试


在这种情况下,正常的集成测试方法是否可行。

您考虑过使用SpringCloudContract()吗?这是一个专门为此目的而设计的项目

你有API的生产者和消费者。Spring云契约和消费者驱动契约方法的思想是这样的,消费者建议生产者的API应该是什么样子。他们可以在不编写任何生产代码的情况下对API进行原型化。原型设计以“合同”的形式进行。它可以是Groovy或YAML文件(当然可以扩展框架)。合同的处理导致创建WireMock存根,消费者可以在其集成测试中利用该存根。换句话说,这就好像制作人准备了一个小型的、假的代码实现来测试透视图。因此,消费者可以对生产者端的存根运行他们的集成测试。存根是根据合同生成的。假设消费者X希望以这样的方式使用API,即如果GET请求被发送到
/foo
,它将以文本
响应。然后,当点击
/foo
端点时,将生成一个以
文本响应的存根

现在,生产商重用相同的合同来生成测试,以验证他们的API是否满足合同中的要求。还记得GET@
/foo
将以
bar
示例响应吗?如果生产者试图构建其项目,但没有这样的端点,则其构建将被破坏。springcloudcontract框架生成测试,以判断API是否按应有的方式工作。只有在生产者修复丢失的实现之后,构建才会通过

这是消费者驱动的契约方法。您还可以使用生产者驱动的方法,即API的生产者只定义契约,而不与消费者沟通他们每个人使用API的确切方式

贵重物品链接:

  • Spring云合同页面:
  • Spring云合同研讨会:
  • 企业演示文稿中的合同测试:
  • 为什么合同测试对演示很重要:

注意:我是SpringCloudContract的维护者。

您考虑过使用SpringCloudContract()吗?这是一个专门为此目的而设计的项目

你有API的生产者和消费者。Spring云契约和消费者驱动契约方法的思想是这样的,消费者建议生产者的API应该是什么样子。他们可以在不编写任何生产代码的情况下对API进行原型化。原型设计以“合同”的形式进行。它可以是Groovy或YAML文件(当然可以扩展框架)。合同的处理导致创建WireMock存根,消费者可以在其集成测试中利用该存根。换句话说,这就好像制作人准备了一个小型的、假的代码实现来测试透视图。因此,消费者可以对生产者端的存根运行他们的集成测试。存根是根据合同生成的。假设消费者X希望以这样的方式使用API,即如果GET请求被发送到
/foo
,它将以文本
响应。然后,当点击
/foo
端点时,将生成一个以
文本响应的存根

现在,生产商重用相同的合同来生成测试,以验证他们的API是否满足合同中的要求。还记得GET@
/foo
将以
bar
示例响应吗?如果生产者试图构建其项目,但没有这样的端点,则其构建将被破坏。springcloudcontract框架生成测试,以判断API是否按应有的方式工作。只有在生产者修复丢失的实现之后,构建才会通过

这是消费者驱动的契约方法。您还可以使用生产者驱动的方法,即API的生产者只定义契约,而不与消费者沟通他们每个人使用API的确切方式

贵重物品链接:

  • Spring云合同页面:
  • Spring云合同研讨会:
  • 企业演示文稿中的合同测试:
  • 为什么合同测试对演示很重要:

注意:我是Spring Cloud合同的维护者。

谢谢Marcin,看起来这就是我要找的。有一个。PACT也是为了这个目的,我想这也完全是为了同样的目的,我的一些朋友直接使用PACT,也可以用于这个目的。SpringCloud合同也与PACT合作良好。PACT要求您使用PACT经纪人,并支持消费者合同方法。无论您选择哪种框架,您都应该使用契约测试方法。谢谢Marcin,看起来这就是我想要的。有一个。PACT也是为了这个目的,我想这也完全是为了同样的目的,我的一些朋友直接使用PACT,也可以用于这个目的。SpringCloud合同也与PACT合作良好。PACT要求您使用PACT经纪人,并支持消费者合同方法。无论您选择哪个框架,您都应该使用契约测试方法。