Mocha/Chai - 测试特定设置和拆卸

Mocha/Chai - test specific setup and tear down

我知道 mocha 前后有全局,前后有每次测试,但我想要的是特定于测试的前后。像 SoapUI 这样的东西。

例如,假设我有一个测试来检查用户的创建是否有效。

我想在测试前从数据库中删除该用户(如果该用户存在的话)。我希望测试确保在测试后删除用户。但我不想为每个测试都这样做,因为只有一个测试会实际创建用户。其他测试将删除 user/s、更新 user/s、无法创建现有用户等

这可能吗,还是我必须在测试中包含安装和拆卸代码?如果是这样,我如何确保安装和拆卸都能正确执行,而不受测试结果的影响?

对于我需要特殊设置和拆卸代码但又无法与其他代码区分开来的测试,我只是放置了一个带有空标题的 describe 块:

describe("SomeClass", () => {
    describe("#someMethod", () => {
        it("does something", () => {});
        it("does something else", () => {});

        describe("", () => {
            // The before and after hooks apply only to the tests in
            // this block.
            before(() => {});
            after(() => {});

            it("does something more", () => {});
        });
    });
});

Is this possible, or do I have to include the setup and tear down code in the test? If so, how do I ensure that both the setup and tear down executes properly, independent of the test result?

可以 将设置和拆卸代码放在测试本身中(即在您传递给 it 的回调中)。但是,Mocha 会将那里的 any 失败视为失败的 test,句号。失败发生在传递给 it 的回调中的哪个位置并不重要。断言库允许您提供自定义错误消息,这可以帮助您找出到底是什么失败了,但是 Mocha 将以相同的方式查看 it 中的所有失败:测试失败。如果您希望 Mocha 以不同于测试失败的方式处理 setup/teardown 代码中的失败,那么您 必须 使用我上面显示的挂钩。