Mocha 是一个流行的 JavaScript 测试框架,可以轻松地编写和运行浏览器和 Node.js 环境下的测试。同样,Should.js是一个流行的断言库,可以帮助您编写易于阅读的测试,它提供了一种优美的语法,可以通过链式调用函数来维护测试的可读性和易于维护性。本文将着重介绍如何在 Mocha 测试框架中使用 Should.js 进行断言。
安装以及基本用法
在开始之前,需要安装两个库——Mocha和Should.js。您可以使用以下命令来全局安装 Mocha 和 Should.js。
npm install -g mocha npm install should --save-dev
接下来,我们将新建一个测试文件 test.js:
const should = require('should');
const add = (x, y) => x + y;
describe('Test add function', () => {
it('Should return the sum of two numbers', () => {
add(2, 3).should.equal(5);
});
});在上面的代码中,我们导入 Should.js 包并使用它完成了一个断言。我们调用了一个名为 describe 的函数,它描述了要测试的主题。在本例中,我们测试了一个名为 add 的函数。在函数中,我们通过链式调用 Should.js 中的函数来维护了断言的可读性和易于维护性。
运行测试时,您可以在命令行中输入以下命令来启动:
mocha test.js
您将看到类似下面的输出:
Test add function
✓ Should return the sum of two numbers
1 passing (9ms)如果运行测试失败,输出将会是以下样子:
-- -------------------- ---- -------
---- --- --------
-- ------ ------ --- --- -- --- -------
- ------- ------
- -------
-- ---- --- --------
------ ------ --- --- -- --- --------
--------------- -------- - -- ----- -
-- ------------------- --------------
Should.js 断言
现在让我们探索更多 Should.js 断言的类型。以下是一些示例,涵盖了其大部分使用方法。
- 相等断言
-- -------------------- ---- -------
--------------- ----------- -- -- -
---------- ------- --------- -- -- -
--------------------
---
---------- ------- --------- -- -- -
------------------------------
---
---------- ------- --------- -- -- -
----- ---- - -
----- ------
---- ---
--
----- ---- - -
---- ---
----- ------
--
-------------------------------
---
---在上述示例中,我们使用 equal 和 deepEqual 函数来比较数字,字符串和对象的相等性。
- 大小比较断言
-- -------------------- ---- -------
-------------------- --- ------- ---- --- ---- ------ -- -- -
---------- ------- --- --------- -- -- -
-----------------------
-----------------------
---
---------- ------- --- ------- -- -- -
----- --- - --- -------
----- -------- - --- ------------------ - -----------------
------------------------------
---
---------- ------- --- -------- -- -- -
--- -- ---------------------------
--- -- ------------------------
---
---在上面的代码中,我们使用 above 和 below 函数来比较数字和日期的大小,并使用 lengthOf 和 containEql 函数来比较数组的长度和元素。
- 类型比较断言
-- -------------------- ---- -------
-------------------- --- ---- ------------- -- -- -
---------- ------- --- ------- ---- ------- -- -- -
-------------------------
-----------------------------
---
---------- ------- --- ------- ---- ------- -- -- -
----------------------------------
--------------------------------------
---
---------- ------- --- ------- ---- ------- -- -- -
----- --- - -
----- -------
---- ---
--
-----------------------------------------------------
----------------------------------------------------
---
---在上述示例中,我们使用 a 函数和 not 函数来比较值的类型,并使用 property 函数来比较对象的属性。
结尾
在本文中,我们学习了如何在 Mocha 测试框架中使用 Should.js 断言库,并深入了解了 Should.js 中的大部分使用方法和函数。Should.js 提供的语法和函数使得测试更为可读,易于维护和编写。希望您通过本文的学习,可以更有效地使用 Should.js 断言库。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/6795b962504e4ea9bdbf6cec