什么是 jiken
jiken 是一个基于 Node.js 的 JavaScript 测试框架。它提供了一组简单易用的 API,让你能够轻松编写和运行单元测试和集成测试。
jiken 的设计理念是简化测试代码编写,并且能够在终端快速运行测试,让你可以快速地定位和解决问题。
安装
你可以通过 npm 安装 jiken:
npm install --save-dev jiken
使用
编写测试
在你的项目中创建一个 test
目录,并且在该目录中创建测试文件。
这里是一个示例测试文件:
const { test } = require('jiken'); test('this is a simple test', (t) => { const actual = 1 + 2; const expected = 3; t.equal(actual, expected); });
在这个测试中,我们使用了 test
函数来定义一个新的测试。该函数有两个参数:测试名称和测试函数。
测试函数接受一个测试上下文对象(在本例中是 t
),它包含了一系列工具方法,比如 t.equal
,用于断言测试结果是否符合预期。
运行测试
一旦你编写完成了你的测试,你可以在终端运行它们。
你可以通过 npx
命令来调用 jiken。在终端输入如下命令:
npx jiken
这将运行项目中的所有测试文件,并输出测试结果。
更多方法
下面是一些常用的方法:
test(name, cb)
定义一个新的测试。测试名称为 name
,测试函数为 cb
。
test('my test', (t) => { t.plan(1); t.equal(1, 1); });
t.plan(num)
告诉 jiken 你的测试计划运行多少次。这对于异步测试非常有用。
test('my test', (t) => { t.plan(2); setTimeout(() => { t.equal(1, 1); t.equal(2, 2); }, 100); });
t.equal(actual, expected, [msg])
断言 actual
等于 expected
。如果不相等,会在控制台输出一条错误信息。可选参数 msg
用于自定义错误信息。
test('my test', (t) => { t.equal(1, 1); t.equal(2, 2, '2 should equal 2'); });
t.notEqual(actual, expected, [msg])
与 t.equal
相反,断言 actual
不等于 expected
。
test('my test', (t) => { t.notEqual(1, 2); });
t.ok(value, [msg])
断言 value
等于 true。可选参数 msg
用于自定义错误信息。
test('my test', (t) => { t.ok(true); t.ok(false, 'this should be true'); });
t.notOk(value, [msg])
与 t.ok
相反,断言 value
等于 false。
test('my test', (t) => { t.notOk(false); });
t.deepEqual(actual, expected, [msg])
断言 actual
深度等于 expected
。可选参数 msg
用于自定义错误信息。
test('my test', (t) => { const arr1 = [1, 2, 3]; const arr2 = [1, 2, 3]; t.deepEqual(arr1, arr2); });
t.notDeepEqual(actual, expected, [msg])
与 t.deepEqual
相反,断言 actual
深度不等于 expected
。
test('my test', (t) => { const arr1 = [1, 2, 3]; const arr2 = [3, 2, 1]; t.notDeepEqual(arr1, arr2); });
t.fail([msg])
直接在测试中失败。可选参数 msg
用于自定义错误信息。
test('my test', (t) => { t.fail('this test should fail'); });
总结
在本文中,我们学习了如何使用 jiken 进行 JavaScript 测试。
我们看到了如何编写基本的测试,并且学习了一些 jiken 提供的断言工具方法。
jiken 可以帮助我们构建可靠的、易于维护的代码。它需要学习强大的 API 和实践,来确保你的代码的质量和可维护性。
如果你想进一步了解 jiken,请访问 https://github.com/tapjs/jiken。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005590581e8991b448d654b