当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Node.js test([name][, options][, fn])用法及代码示例

test([name][, options][, fn])

添加于:v18.0.0

参数
  • name <string> 测试名称,在报告测试结果时显示。 默认: fnname 属性,如果 fn 没有名称,则为 '<anonymous>'
  • options <Object>测试的配置选项。支持以下属性:
    • concurrency <number> 可以同时运行的测试数。如果未指定,子测试会从其父级继承此值。 默认: 1
    • only <boolean> 如果为真,并且测试上下文配置为运行 only 测试,则将运行此测试。否则,将跳过测试。 默认: false
    • skip <boolean> | <string> 如果为真,则跳过测试。如果提供了字符串,则该字符串将作为跳过测试的原因显示在测试结果中。 默认: false
    • todo <boolean> | <string> 如果为真,则测试标记为 TODO 。如果提供了字符串,则该字符串将显示在测试结果中,作为测试为 TODO 的原因。 默认: false
  • fn <Function> | <AsyncFunction> 被测函数。此函数的第一个参数是 TestContext 对象。如果测试使用回调,则回调函数作为第二个参数传递。 默认: no-op 函数。
  • 返回: <Promise> 测试完成后使用 undefined 解决。

test() 函数是从test 模块导入的值。每次调用此函数都会在 TAP 输出中创建一个测试点。

传递给fn 参数的TestContext 对象可用于执行与当前测试相关的操作。示例包括跳过测试、添加额外的 TAP 诊断信息或创建子测试。

test() 返回一个 Promise,一旦测试完成就会解析。对于顶级测试,通常可以丢弃返回值。但是,应使用子测试的返回值来防止父测试先完成并取消子测试,如下例所示。

test('top level test', async (t) => {
  // The setTimeout() in the following subtest would cause it to outlive its
  // parent test if 'await' is removed on the next line. Once the parent test
  // completes, it will cancel any outstanding subtests.
  await t.test('longer running subtest', async (t) => {
    return new Promise((resolve, reject) => {
      setTimeout(resolve, 1000);
    });
  });
});

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 test([name][, options][, fn])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。