带有黄瓜的Spring Boot微服务端到端测试和数据库验证

问题描述 投票:0回答:1

我的项目基于事件驱动的微服务架构。而且,我们正在尝试使用黄瓜进行端到端测试,以使测试中的功能以商业可读格式提供。

详细信息如下。服务架构:

涉及4个微服务。我们将请求发送到服务A,请求得到处理并存储在数据库中,服务A发布事件,服务B吸收了该事件,服务B再次处理该事件并将结果存储在DB中并发布了要使用的事件通过服务C并像该服务D一样。

用户(向服务A发送请求的请求)服务A->(处理,存储在数据库中并将事件发布到服务B)->服务b(从A消耗事件,将结果处理并存储在DB中,将事件发布到C) ...

测试策略:作为端到端测试的一部分,我们将向服务A发送发布请求。服务A将仅返回响应200,而没有响应正文。

我们需要对每个服务数据库中的数据进行验证,并断言这与预期的一样。

类似于特征文件

给出系统处于预期状态。什么时候发送请求到服务A和服务返回200响应和验证服务A数据库中是否存在已处理的数据和验证服务B数据库中是否存在已处理的数据和验证服务C DB中是否存在已处理的数据

**我想了解,1.进行此类测试的正确方法应该是什么。

  1. 这是在数据库中进行端到端测试和验证的正确方法还是其他方法?**
spring-boot cucumber microservices bdd spring-test
1个回答
0
投票

这是您的问题:

我们需要对每个服务数据库中的数据进行验证,并断言这与预期的一样。

这在单元测试应用程序测试中完成。

如果需要验证每个数据库中的数据是否正确,则您尝试进行单元测试,但您的单元是一堆服务组合。

您正在做一个巨大的单元测试。


单元测试

单元测试验证每个服务中的逻辑是否正确

单独进行应用程序测试

测试api是否以正确的状态代码响应正确的错误。它正确地读写数据库。在这里,您可以测试应用程序的api。

端到端

您将一堆服务捆绑在一起,并发布了一些数据,您确认返回的数据符合预期。 您无需详细介绍每种服务的功能,这已经在较早的测试中得到了解决。

这是服务基本上可以进行通信并返回您期望的最终检查。 您对他们的操作方式没有兴趣


不要在端到端测试中进行单元测试

© www.soinside.com 2019 - 2024. All rights reserved.