當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。