Spring cloud contract Spring云契约和Spring WS端点

Spring cloud contract Spring云契约和Spring WS端点,spring-cloud-contract,Spring Cloud Contract,SpringCloudContract可以用于测试运行SpringWS端点的SpringBoot服务吗?我希望能够使用Groovy DSL定义SOAP请求/响应,但我还无法让这些服务与Spring Cloud Contract一起使用。当我试着运行这些测试时,我不断地得到一个失败(预期为200,但收到404)。有趣的是,我在我的端点类中添加了@RestController和@RequestMapping注释(知道这样做行不通),只是为了测试这些服务是SpringWS端点而不是SpringREST

SpringCloudContract可以用于测试运行SpringWS端点的SpringBoot服务吗?我希望能够使用Groovy DSL定义SOAP请求/响应,但我还无法让这些服务与Spring Cloud Contract一起使用。当我试着运行这些测试时,我不断地得到一个失败(预期为200,但收到404)。有趣的是,我在我的端点类中添加了@RestController和@RequestMapping注释(知道这样做行不通),只是为了测试这些服务是SpringWS端点而不是SpringREST控制器这一事实是否可能是问题所在(例如,SpringCloud是否只“看到”REST端点?)。然后…我又犯了一系列不同的错误。所以,我现在假设我不能使用SpringCloudContract来测试我的SOAP服务,但我想确定(也就是说,是否有某种方法可以做到这一点,我还没有发现?)


我们的核心服务被实现为REST服务,但我们仍然必须支持SOAP客户机,直到它们可以迁移到REST,所以它们包装了我们的REST服务。我需要同时测试两者的能力。我已经成功地为我们的REST服务创建了测试。

尝试使用显式模式使REST assured发送真正的请求。在基类中,您必须设置整个应用程序,使其绑定到实际端口。然后在测试的before部分中,您需要告诉rest assured,我应该调用以下端口。就是这样:P

尝试使用显式模式让rest-assured发送真正的请求。在基类中,您必须设置整个应用程序,使其绑定到实际端口。然后在测试的before部分中,您需要告诉rest assured,我应该调用以下端口。就是这样:P

SpringWS服务是否仍然能够将存根用于SpringCloudContract生成的其他服务?或者,我必须要有完整的堆栈并运行(例如,OAuth服务、服务依赖项A、服务依赖项B等)?这一切都取决于您。在基类中,可以启动正常的Spring上下文。我的建议是(在制作人方面)在您的控制器之外对任何后续呼叫进行存根。您不希望在合同测试中进行端到端测试。换句话说,如果您的控制器调用一个服务,您应该在合同测试中删除该服务。在消费者端,您可以调用任意多个存根。当然,这些都是我对Spring WS的假设,因为我从来没有在Spring Cloud Contract中尝试过。我不想为依赖项手动创建存根,因为这违背了使用Spring Cloud Contract的全部目的,因为只有在生成依赖项存根的测试通过时,才会生成依赖项存根。你是说这就是我必须要做的,手动为服务依赖项创建这些存根吗?如果不是,我怎么能使用SpringCloudContract生成的存根jar来模拟这种设置中的服务依赖关系呢。当我说您可以在stubrunner中调用任意多的存根==时,您可以传递任意多的工件ID。生产者定义契约——消费者在其测试中要求它们——Spring WS服务是否仍然能够将存根用于Spring Cloud Contract生成的其他服务?或者,我必须要有完整的堆栈并运行(例如,OAuth服务、服务依赖项A、服务依赖项B等)?这一切都取决于您。在基类中,可以启动正常的Spring上下文。我的建议是(在制作人方面)在您的控制器之外对任何后续呼叫进行存根。您不希望在合同测试中进行端到端测试。换句话说,如果您的控制器调用一个服务,您应该在合同测试中删除该服务。在消费者端,您可以调用任意多个存根。当然,这些都是我对Spring WS的假设,因为我从来没有在Spring Cloud Contract中尝试过。我不想为依赖项手动创建存根,因为这违背了使用Spring Cloud Contract的全部目的,因为只有在生成依赖项存根的测试通过时,才会生成依赖项存根。你是说这就是我必须要做的,手动为服务依赖项创建这些存根吗?如果不是,我怎么能使用SpringCloudContract生成的存根jar来模拟这种设置中的服务依赖关系呢。当我说您可以在stubrunner中调用任意多的stubs==时,您可以传递任意多的工件ID-