作为一个前端开发者,我们会经常遇到bug, 如安全性的bug、逻辑性的bug、性能bug、展示bug等等。
当我们遇到复杂的业务场景,或者对老代码进行修补时,遇到bug更是正常现象,在编码过程中,我们可以借助Typescript/Flow/Eslint/StyleLint等一些插件尽可能的去降低bug出现的概率,提高代码规范。为了防止bug会被带到线上的情况,我们需要在项目上线之前,借助一些自动化测试工具,来再次避免bug的产生。
什么是前端自动化测试
我们来写一段测试的js代码,通过测试的js代码,来运行我们实际业务中的代码。预期它的执行结果,并把我们的预期结果与实际结果比较是否相等。如果相等,说明代码没有问题,如果不相等,就说明代码有问题,抛出异常。
通过单元测试的demo,来理解自动化测试原理:
demo目录:
|--demo
|--index.html
|--math.js
|--math.test.js
math.js
// 加法函数
function add (a, b) {
return a + b;
}
// 减法函数
function minus (a, b) {
// return a - b; // 正确写法
return a * b; // 错误写法(这里可以故意写错,方便测试)
}
math.test.js
// 最初版
// 通过设置预期值,判断预期值和实际结果是否相等,若不相等则抛出错误
var result = add(3, 7);
var expected = 10;
if(result !== 10) {
throw Error(`3 + 7 应该等于${
expected}, 但是结果却是${
result