@bonniernews/node-test-bdd

中文文档
0.0.4发布于 2025/04/25MITTypeScriptCommonJS零依赖近 30 天下载 2210

节点测试的 BDD 语法

中文使用文档
文档目录8 节
  1. QQ 快速启动
  2. 安装
  3. 使用量
  4. 在全球注册BDD测试功能
  5. API 密码
  6. 假想钩
  7. 从莫查搬来
  8. Mocha vs. Node.js 测试运行器选项

@bonniernews/node-test-bdd (英语)

节点测试 BDD 是Gherkin/Cucumber式的Node.js测试框架,旨在与该测试系统无缝工作 节点测试跑道。 。 。 .

用来代替你 摩卡蛋糕 2 用户从 摩诃迦叶 到节点的本土测试跑道.

QQ 快速启动

安装软件包 :

npm install --save-dev @bonniernews/node-test-bdd

写第一个测试:

import assert from "node:assert";
import { Feature, Scenario, Given, When, Then } from "@bonniernews/node-test-bdd";

Feature("Basic Math", () => {
  Scenario("Incrementing a number", () => {
    let number = 1;

    Given("I have a number 1", () => {
      assert.strictEqual(number, 1);
    });

    When("I add 1", () => {
      number += 1;
    });

    Then("The number should be 2", () => {
      assert.strictEqual(number, 2);
    });
  });
});

使用节点的内置测试跑道运行测试:

node --test

输出应该是这样的:

Test output

安装

安装为发展依赖:

npm install --save-dev @bonniernews/node-test-bdd

使用量

节点测试BDD为定义测试提供了Gherkin风格的语法:

import assert from "node:assert";
import { Feature, Scenario, Given, When, Then, And } from "@bonniernews/node-test-bdd";

Feature("Example feature", () => {
  Scenario("Example scenario", () => {
    let number;
    Given("I have a number", () => {
      number = 1;
    });
    And("That number is 1", () => {
      assert.ok(number === 1);
    });
    When("Adding 1 to that number", () => {
      number += 1;
    });
    Then("The number should be 2", () => {
      assert.ok(number === 2);
    });
  });
});

在全球注册BDD测试功能

为避免在每个测试文件中导入 BDD 函数, 您可以在全球注册它们 :

选项 1: 在测试设置文件中导入

import "@bonniernews/node-test-bdd/register-bdd";

备选案文2:运行测试时动态导入

node --test --import '@bonniernews/node-test-bdd/register-bdd'

API 密码

节点测试BDD提供以下测试功能:

  • Feature(description, fn)
    • Scenario(description, fn)
      • Given(description, fn)
      • When(description, fn)
      • Then(description, fn)
      • And(description, fn)
      • But(description, fn)

假想钩

你可以使用钩来设置和清理每个情景前后.

Feature("Some feature", () => {
  beforeEachScenario(() => {
    someSetup();
  });

  afterEachScenario(() => {
    doCleanup();
  });

  Scenario("First scenario", () => {
    // Test logic...
  });

  Scenario("Second scenario", () => {
    // Test logic...
  });
});

从莫查搬来

如果您的 Mocha 测试套件按顺序运行( 不平行), 您应当考虑设置 --experimental-test-isolation 旗为 none。 。 。 .

这确保:

  • 所有测试文件都运行在与测试跑者相同的过程中.
  • 这个 --test-concurrency 自动设置为 1模仿莫查的默认行为.

Mocha vs. Node.js 测试运行器选项

Mocha 选项在 Node.js 测试运行器中等效
离开--测试力-退出
-- grep (英语)-- 测试名称模式
--记者-- test-reporter 测试报告器
--要求--进口
-- 超时-- 测试超时

版本与发布记录

@bonniernews/node-test-bdd 共发布 4 个版本,首次发布于 2025/03/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.4latest2025/04/251.5 年前
0.0.32025/04/241.5 年前
0.0.22025/03/271.6 年前
0.0.12025/03/141.7 年前

关于 @bonniernews/node-test-bdd 的常见问题

@bonniernews/node-test-bdd 是什么?

节点测试的 BDD 语法

如何安装 @bonniernews/node-test-bdd?

在项目目录运行 npm install @bonniernews/node-test-bdd,或使用 pnpm add / yarn add / bun add。

@bonniernews/node-test-bdd 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bonniernews/node-test-bdd 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bonniernews/node-test-bdd 可以商用吗?

@bonniernews/node-test-bdd 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bonniernews/node-test-bdd 的下载量有多少?

根据 npm 官方下载统计,@bonniernews/node-test-bdd 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,210 次,日均约 74 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bonniernews/node-test-bdd 还在维护吗?

最新版本 0.0.4 发布于 2025/04/25(1.5 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2025/03/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。