介绍
@theintern/common 是一个 Node.js 上的前端测试工具 Intern 的核心包,提供了一系列的常用方法和工具函数,包括异步测试、断言、命令行工具等功能。本文将详细介绍如何使用 @theintern/common。
安装
@theintern/common 可以通过 npm 安装:
npm install @theintern/common --save-dev
安装完成后,就可以在项目中使用 @theintern/common 了。
异步测试
@theintern/common 提供了一些工具函数,用于在测试中处理异步操作。
Test 条件
Test 条件是测试过程中必须要满足的条件。如果条件不满足,测试就会失败。Test 条件可以是同步的,也可以是异步的。异步的 Test 条件应该返回一个 Promise。
registerSuite('My Suite', { async 'test some async operation'() { await someAsyncOperation(); assert.ok(someResult, 'Async operation result was falsy'); } });
重试
在测试中,有时我们需要重试某一操作多次直到成功。@theintern/common 提供了 retry()
函数,可以用于执行带有重试机制的操作。
-- -------------------- ---- ------- ----------------- ------- - ----- ----- ---- ---------- - ----- ----------- -- -- - ----- ------ - ----- --------------------- ----------------- ------ --------- ------ --- -------- -- - ------------ -- --------- ---- --- - ---
以上示例表示,当 someAsyncOperation()
的返回结果为 falsy 时,将会在 1 秒后重新执行该操作,最多会执行 5 次。
打印调试信息
在调试测试时,我们可能需要打印一些调试信息,以方便调试。@theintern/common 提供了 log()
函数,可以用于打印信息。
registerSuite('My Suite', { async 'test with log'() { log('Test start'); await someAsyncOperation(); log('Async operation finished'); } });
断言
@theintern/common 提供了一系列的断言函数,可以在测试中方便地验证某个条件是否成立。
assert()
assert()
是最基本的断言函数,用于验证某个条件是否成立。
registerSuite('My Suite', { 'test some assertion'() { assert.ok(someCondition); } });
如果 someCondition
为 falsy,那么该断言就失败了,测试也就失败了。
assert.strictEqual()
assert.strictEqual()
用于严格比较两个值是否相等。
registerSuite('My Suite', { 'test with strictEqual assertion'() { assert.strictEqual(1, '1'); // fail assert.strictEqual(1, 1); // pass } });
assert.deepEqual()
assert.deepEqual()
用于判断两个对象是否相等。
registerSuite('My Suite', { 'test with deepEqual assertion'() { assert.deepEqual({a: 1}, {a: '1'}); // fail assert.deepEqual({a: 1}, {a: 1}); // pass } });
assert.isTrue() 和 assert.isFalse()
assert.isTrue()
和 assert.isFalse()
用于判断一个值是否为 true 或 false。
registerSuite('My Suite', { 'test with isTrue and isFalse assertion'() { assert.isTrue(true); // pass assert.isFalse(false); // pass assert.isTrue(false); // fail assert.isFalse(true); // fail } });
命令行工具
@theintern/common 还提供了一些命令行工具,可以方便地进行测试。以下是一些常见的使用方式:
本地测试
在项目中安装了 @theintern/common 后,可以使用 intern
命令进行本地测试。
node_modules/.bin/intern run
该命令会执行当前目录下的所有测试用例。
Sauce Labs 测试
@theintern/common 还提供了和 Sauce Labs 集成的功能,可以把测试结果自动上传到 Sauce Labs 上。
在执行测试时,可以使用 --config
参数指定配置文件:
node_modules/.bin/intern run --config test/sauce.config
配置文件类似于以下内容:
-- -------------------- ---- ------- -------- ------------- -- ------------ -------- --- ------- ------------------ -------------- - --------- ---------------------- ---------- ----------------------- -- ------- - --------- -- ----- ------ --------- --- -- -- ------- ------------------ ---
在配置文件中,可以指定要测试的浏览器、测试的套件等等信息。
结论
@theintern/common 是一个非常实用的测试工具,在测试前端代码时能够为开发者提供很多便利。本文对 @theintern/common 的基本使用和一些高级用法进行了详细的介绍和说明,希望对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc8b9b5cbfe1ea0612321