@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
输出应该是这样的:

安装
安装为发展依赖:
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 测试报告器 |
| --要求 | --进口 |
| -- 超时 | -- 测试超时 |