Spring boot spring boot微服务端到端测试和数据库验证
我的项目基于事件驱动的微服务体系结构。我们正在尝试使用cucumber进行端到端测试,以便测试中的特性以业务可读的格式提供 详情如下。 服务架构: 涉及4个微服务。我们将请求发送给服务A,请求被处理并存储在DB中,服务A发布事件,该事件被服务B使用,服务B再次处理事件并将结果存储在DB中,并发布事件以供服务C使用,类似于服务D UserPost请求服务A->处理,存储在数据库中并将事件发布到服务B->服务B消费事件从A,处理并存储结果到数据库,将事件发布到C 测试策略: 作为端到端测试的一部分,我们将向服务A发送post请求。服务A将只返回响应200,而不返回响应主体 我们需要对每个服务数据库中的数据进行验证,并断言这是预期的 类似于功能文件 给定 系统处于预期状态。 什么时候 向服务A发送请求 和 服务返回200响应 和 验证服务数据库中是否存在已处理的数据 和 验证已处理的数据是否存在于服务B数据库中 和 验证已处理的数据是否存在于服务C DB中 **我想了解, 1.进行此类测试的正确方法应该是什么 这是在DB中进行端到端测试和验证的正确方法,还是应该使用其他方法** 这是你的问题: 我们需要对每个服务数据库中的数据进行验证,并断言这是预期的 这是在单元测试和应用程序测试中完成的 如果您需要验证每个数据库中的数据是否正确,那么您将尝试进行单元测试,但您的单元是一组服务的组合 你正在做一个巨大的单元测试 单元测试 单元测试验证每个服务中的逻辑是否正确 隔离应用测试 测试api是否使用正确的状态代码响应正确的错误。它正确地读写数据库。这里测试应用程序的api 端到端 将一组服务粘在一起,发布一些数据,验证返回的数据是否符合预期。您不会详细讨论每个服务都做了什么,这已经在早期的测试中得到验证 这是最后一次检查,服务基本上可以通信并返回您所期望的内容。你对他们怎么做不感兴趣 你的案子 你把一些东西贴到你的服务上,你会得到200分的回扣。那你应该很高兴,考试通过了。因为服务达到了您的预期,所以您发布了一些内容,它返回了200 前面的测试已经通过了单元测试和应用程序测试,它们告诉您每个服务都遵循给定的规范。所以,当你准备好端到端的测试时,你已经测试到了这一点 只有当所有的东西都被孤立地测试时,你才能做到端到端 在端到端测试中,您对它的执行方式毫无兴趣,只对它返回的内容感兴趣 不要在端到端测试中进行单元测试Spring boot spring boot微服务端到端测试和数据库验证,spring-boot,cucumber,microservices,bdd,spring-test,Spring Boot,Cucumber,Microservices,Bdd,Spring Test,我的项目基于事件驱动的微服务体系结构。我们正在尝试使用cucumber进行端到端测试,以便测试中的特性以业务可读的格式提供 详情如下。 服务架构: 涉及4个微服务。我们将请求发送给服务A,请求被处理并存储在DB中,服务A发布事件,该事件被服务B使用,服务B再次处理事件并将结果存储在DB中,并发布事件以供服务C使用,类似于服务D UserPost请求服务A->处理,存储在数据库中并将事件发布到服务B->服务B消费事件从A,处理并存储结果到数据库,将事件发布到C 测试策略: 作为端到端测试的一部分,