「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】

「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】

二哲 web前端开发 前端

你bf有时候咱们须要不发送请求就能完成前端的业务逻辑测试,而许多的业务逻辑都会须要调用到后端的API接口。那如何能mock咱们所须要的data就是一个问题。当咱们能有一个良好的测试环境以后,只要保证后端的接口没有问题,那咱们就能够保证业务逻辑也没有问题。web

因此咱们对API的集成测试有如下几个要求
1.不发送请求,返回本地假数据
2.发布前经过CI跑unit test,经过则发布上线后端

如何实现?

首先通常咱们在network部分都会进行封装,假设在project中封装了以下的请求工具
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
既然咱们不能发送真实请求,那咱们就须要相似能拦截的东西,拦截也能够经过mock代替。因而咱们能够经过jest.mock方法来作。安全

jest.mock

「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
这个就是jest.mock的做用。数据结构

内容开始

明白了这个后就好办了。项目目录以下:
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
而咱们的fake文件其实主要作的事情就是根据请求url,method,status等,去读取对应的本地假数据。大体以下。
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
mockData文件夹则就是放咱们的假数据,在这咱们能够假设定义以下数据结构,来模拟咱们的response。
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
最后看下咱们的 unit test 如何写
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】ide

实现了这个有什么用?

假设/user接口返回得数据多是这样
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
而咱们前端service层为UI层提供了一个initUserData的方法,initUserData方法里的操做是当age为18,那就要返回19。
因此咱们在Jest则能够直接这样测试。
「CI集成」基于Jest Mock API对业务逻辑集成测试【附源码】
这样咱们使用Jest就能够完成对业务逻辑的测试,Unit test在大型项目中很是须要,每当提交一个feature时,能够跑完全部测试,会让你很是有安全感,极大提高了项目的稳定性。工具

TIP

真正的方法(http),与mock的方法http,文件必须同名,而后放在mocks文件夹下便可。若是不一样名使用jest.mock()则会失败。学习

以上例子源码请自行下载学习:
连接: https://pan.baidu.com/s/1QyI8ayo3EHD3xfwTUkRDlg 密码: 1jq4测试

相关文章
相关标签/搜索