Jest是一个JavaScript测试框架,由Facebook用来测试所有JavaScript代码。
示例代码的仓库地址请点击这里。
示例代码的安装、执行
# 建议使用cnpm进行安装,puppeteer需要下载Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win)
sudo npm install -g cnpm jest
cnpm install
npm start
# npm run test
# jest
执行demo.test.js
文件结果
代码说明
我们先看第一个最简单的例子,例子中的test
方法,是Jest在代码执行之前注入
进去——我们不必引用、直接使用。
第一个参数是字符串,用来填写当前测试用例
的说明。
第二个参数是一个函数,用来填写我们要执行的测试代码。
代码里面的expect
函数,传入的参数
是真实的结果,
后面的toBe(3)
是匹配
(Matcher),
表示我们最终期待
的结果
是数字3
,其他的匹配请参见Jest官方文档)。
第二个测试用例,我们使用了上一篇关于Puppeteer
文章中的示例,将其改造成一个Jest
的测试用例。
执行所有文件结果
这里又添加了另一个例子:
这是一个稍微复杂的用例,我们用来测试”登录、退出”。
beforeAll
和afterAll
是Jest提供的另一套API,
供我们进行资源的初始化和销毁。
其中,beforeAll
是在所有测试用例之前
执行一次操作的代码,我们会经常在这里定义一些公用的资源,比如这里的browser
和page
。
afterAll
是在所有测试用例之后
执行一次操作的代码,我们会经常在这里销毁一些资源,比如这里的关闭browser
。
Jest默认的单元测试的超时时间
是5000毫秒(5秒),超过5秒就会报错,而在实际测试过程中,由于页面加载等等都需要花一定时间,
所以我们这里设置超时时间
为30000毫秒(30秒)或者更长。
在实际项目中,测试用例成功截图
在实际项目中,测试用例失败截图