在哪里为前端/后端应用程序编写测试? [英] Where to write tests for a Frontend/Backend application?

查看:24
本文介绍了在哪里为前端/后端应用程序编写测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想编写一个具有简单的前端-后端(睡觉接口)架构的Web应用程序。 我不清楚在哪里以及如何编写测试。

前端:我是否应该编写模拟API响应的测试并仅测试UX/UI? 后端:我应该在这里编写API调用测试,并最终对类进行更细粒度的单元测试吗?

但在这种情况下,我担心前端测试不知道真正的API响应(因为它是独立于后端模拟的)。 另一方面,如果我不模拟API响应,而使用来自后端的真实响应,那么前端客户端如何准备DB来获取他想要的数据呢?

在我看来,我需要3种测试类型: -UX/UI测试:前端使用一组模拟响应 -API测试:API在给定一组数据的情况下给出正确答案 -集成测试:前端真正调用后台,有一组数据(由谁生成?)。

有没有框架或工具可以让这一切变得尽可能轻松? 在我看来非常复杂(如果API规范改变,我必须重写很多测试)

欢迎任何建议

推荐答案

嗯,你基本上是对的。此场景中有三种类型的测试:后端逻辑、前端行为和集成。我们平分吧:

后端测试

您主要测试的是应用程序的业务逻辑。但是,您必须测试整个应用程序堆栈:域、应用层、基础设施、表示(API)。这些层需要单元测试和集成测试,以及从用户角度看的一些纯黑盒测试。但这本身就是一个复杂的问题。完整的答案将是非常长的。如果您对一般测试应用程序的一些技术感兴趣,请启动另一个线程。

前端行为

在这里测试前端应用程序是否正确使用API。您模拟后端层并编写大部分单元测试。现在,正如您注意到的-关于真正的API合同可能会有一些问题。然而,有一些方法可以缓解这类问题。首先,指向这些解决方案之一的链接:https://github.com/spring-cloud/spring-cloud-contract。现在,给出一些解释。想法很简单:API合同是由消费者驱动的。在您的情况下,这将是前台应用程序。前台团队与后端团队合作创建合理的API,满足客户的所有需求。因此,前端测试保证使用"真正的API"。当客户端测试更改时-合同更改,因此后端必须重构以满足新需求。

顺便提一下-您实际上不需要使用任何具体的框架。如果您对您的团队应用一些纪律,您可以遵循相同的方法。只需记住-消费者首先定义合同。

集成测试

要确保一切正常,您还需要一些集成e2e测试。您设置了一个真正的后端应用程序测试实例。然后,使用真实的服务器而不是假的模型响应执行集成测试。但是,您不需要(也不应该)从其他层复制相同的测试。您希望测试所有内容是否都正确集成。因此,您不会测试任何真正的逻辑。您只需选择一些愉快的路径,可能是一些失败的场景,然后从用户的角度执行这些测试。因此,您对后端应用程序的状态没有任何假设,并模拟用户交互。如下所示:添加新产品、修改产品、获取更新产品或检查单一认证点。这类测试-不是真正测试任何业务逻辑,但只有在真正的API测试服务器与前端应用程序正确通信的情况下。

这篇关于在哪里为前端/后端应用程序编写测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆