简介
npm 包 eut 是一个轻量级的前端单元测试工具,可以在浏览器和 Node.js 环境中运行。eut 的定位是 易学易用,同时提供丰富的测试套件和功能。eut 相比其他单元测试工具,其最大的优势是在编写简单测试用例时体现出来的。相对来说,其复杂的测试用例写法就需要学习工具本身提供的测试用例模板,以及如何将测试结果进行断言。
安装
在项目中安装 eut,可以通过 npm 进行简单的安装,命令如下:
$ npm install eut --save-dev
这样就能安装依赖到项目,接下来我们就可以使用 eut 进行单元测试了。
基本使用
在代码中我们编写好测试脚本后,使用 eut 进行运行测试代码。运行过程中 eut 可以输出错误信息,方便我们进行代码的调试。
以下是简单的示例代码:
-- -------------------- ---- ------- ----- --- - --------------- -------------------- ---------- - -------------- ----- ---------- - ---------------------- ------ --- ------------------ ---------- - --------------------------------- ----------- --- ----------------- ---------- - ----------------------- --- ----------------- ---------- - ---------------------- -- ---- --- ----------------- ---------- - ------------------------ --- --- -- ---- ----------
我们创建一个测试套件,并编写测试用例。在示例代码中我们编写了 5 个测试用例,运行后我们能看到如下结果。
断言语法
EUT 提供了丰富的断言语法,这里做一个简单介绍。
equal/strictEqual/deepEqual
equal/strictEqual/deepEqual 都是比较相等的方法。优先使用 equal
方法,相当于 ==
运算符,且可以进行类型的自动转换;strictEqual
相当于 ===
运算符,不进行类型转换;deepEqual
比较两个对象是否深层相等。
// y 和 z 比较时有意义 eut.assert.equal(x, y); eut.assert.strictEqual(x, y); eut.assert.deepEqual(x, y);
isNumber
判断是否为数字类型。
eut.assert.isNumber(2);
isString
判断是否为字符串。
eut.assert.isString('hello world');
isArray
判断是否为数组类型。
eut.assert.isArray([1, 2, 3]);
isObject
判断是否为 Object 类型。
eut.assert.isObject({});
isFunction
判断是否为函数类型。
eut.assert.isFunction(function() {});
测试套件
除了在示例中介绍的 suite
和 test
方法外,eut 还提供了一些单元测试套件,其具有更强的功能实现。
beforeEach / afterEach
@BeforeEach 在每一个测试 Case 执行前都会执行。
@AfterEach 在每一个测试 Case 执行结束后都会执行。
-- -------------------- ---- ------- ----------------- ---------- - ------------------------- - -- ---- --- ------------------------ - -- ---- --- -------------- --- ---------- - ------------------- --- --- -------------- --- ---------- - ------------------------ --- ---
before / after
@Before 在测试套件中的所有测试 Case 执行前都会执行。
@After 在测试套件中的所有测试 Case 执行完执行。
-- -------------------- ---- ------- ----------------- ---------- - --------------------- - -- ---- --- -------------------- - -- ---- --- -------------- --- ---------- - ------------------- --- --- -------------- --- ---------- - ------------------------ --- ---
测试异步代码
测试异步代码需要使用 done() 方法进行正确监听测试完成事件。
eut.suite('测试异步代码', function() { eut.test('异步 Test Case', function(done) { setTimeout(function() { eut.assert.isNumber(3); done(); }, 1000); }); });
总结
通过以上内容可以看出,eut 是一个相对来说简单并且易学使用的前端单元测试工具,同时具有丰富的测试语法和套件功能。对于新手来说,eut 是一个很好的入门工具,可以更好地帮助大家规范代码编写,开发出更加高质量的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005626281e8991b448dfac9