赞
踩
实践目标
单元测试实现:对用户接口进行测试,登录,获取用户信息,更新用户信息, 登出 ,各接口返回200状态码,即判断测试通过
e2e测试实现:自动化运行待测试vue应用,脚本控制登录信息(用户名、密码)的输入过程,完成登录过程
注:本例的vue应用相对简单,登录成功后,将用户信息输出到浏览器界面。
做unit测试,需要安装对vue的包
“Jest 和 Vue Test Utils”:
npm install --save-dev jest @vue/test-utils
常见问题及解决
CROS跨域问题。这里是因为jsdom模拟了浏览器(包括浏览器的跨域策略)。解决方法见后面
Jest做单元测试时,跨域问题以及会话状态管理的处理办法
a.改变adapter;
b.开发人员手动设置Cookie值;(考虑到本例中使用的是JWT,能够实现)
注意:e2e测试时,浏览器是由测试脚本自动开启的,而非由开发者手动点开快捷图标。因此通过快捷图标进行的跨域配置无效。
chrome 浏览器跨域问题,一般是添加如下参数
--disable-web-security --user-data-dir
到test/e2e/nightwatch.conf.js 文件中(下图所示)
测试数据updateDatas定义如下(examples.js)
测试接口update定义如下(user.js)
api
1: 这是本例子中一个e2e要用到的函数——setValue。用来模拟用户输入框中输入文本的行为。地址:nightwatchjs.org/api#setValue2: 这是另一个e2e要用到的函数——click。用来模拟用户点击按钮的行为。地址:nightwatchjs.org/api#setValue
test/e2e/specs/test.js内容如下:
var account = require ('./base.js').account
module.exports = {
输入 npm run e2e ,可以看到有输出2个绿色的勾勾。
how: 输入 npm run unit 。得到如下的测试运行结果。可以看到有非常醒目绿色的pass。证明测试代码运行通过,逻辑符合预期。 还有一个表格,这次不都是100%了。说明覆盖率还可以再高些。
好了,最后附上本例的源码:https://download.csdn.net/download/baidu_34503703/10384962
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。