单元测试与集成测试

一、题外

现在AI形式愈盛,对程序员来说,要找工作只会越来越难,本人现在入职一家公司,已经要求是一个全栈了(前端+后端+测试)

二、概述

单元测试和集成测试不过都是测试的一种,其目的是将整个测试流程,自底向上地拆分开。

从一个小的,不可拆分的模块开始测试,在测试完毕之后,能够保证这个模块不会出错;再把多个小的模块组合在一起,一起测试,保证这些模块的组合不会出错;

前者就是单元测试,而后者就是集成测试。

三、单元测试

对于单元测试来讲,每个单元都需要保证是个不可拆分的模块。

如果测试的对象,是一个前端+后端的系统,那么我们的单元测试对象就应该是前端中的某个模块,或者后端中的某个模块。

单元测试中:

  • 前端需要测试的可能是某个组件,比如:这个输入框是否做了输入范围的限制;这个按钮点击后的是否会弹出弹窗;提交表单时,是否会成功组装数据等等。

  • 后端需要测试的则会是某个服务,比如:将参数按照要求的格式给到service层的函数,是否会运行成功;或是对参数校验,抛出异常。

不管是在前端还是后端,在单元测试的过程中,不应该出现任何调用相关的情况,如果代码中依赖其他的组件,可以通过模拟数据的方式进行替代,这也是为什么测试的时候,通常需要新开一个测试分支。

四、集成测试

在单元测试结束之后,我们便能够保证每个模块都能单独运行成功,但是这并不能保证整个系统就能衔接顺畅,所以,接下来需要进行集成测试。

1. 前端

对于前端来讲,页面之间的逻辑跳转,以及不同组件之间的数据传递都属于这一部分。

举个例子:

     A页面          ->      B页面       ->     A页面
(点击跳转B页面)          (点击返回)        

这时,我们需要关注的是,页面是否能够成功跳转,如果有数据传递,传递的数据有没有生效

2. 后端

对于后端来讲,整个测试的脉络会非常清晰

比如,参数从Controller层一直到Repository层,能否传递成功,是否会出现数据映射的错误

又或者,使用Client的时候,是否会出现数据格式转换的问题

3. 前后端联调

在分别测试完毕前端和后端之后,便需要前后端联合测试,查看数据在前后端之间流通时,是否会出现问题

即时到了这一步,也应该遵循自底向上的原则,从小的模块开始测试,然后测试拥有模块间依赖的组合

五、文档

不管是单元测试还是集成测试,都应该书写对应的文档,以记录自己哪些是需要测试的,哪些是测试过程中发生错误的

按照自底向上的逻辑,可以把整个测试流程变成很多层

在测试的过程中也应该按照:书写该层文档 -> 测试该层 -> 出现问题记录在文档中 -> 修改bug -> 修改文档

尽量在测试的过程中,不要修改bug,而是应该在测试完毕之后,集中修改。

这样可以有效防止在前一个bug修改完毕之后,发现后面因为自己的修改,出现了更大的问题。

posted @ 2026-04-14 15:50  报废之人  阅读(9)  评论(0)    收藏  举报