gpt4 book ai didi

node.js - 如何仅在特定测试时在 Mocha 上运行 'After' 代码?

转载 作者:搜寻专家 更新时间:2023-11-01 00:17:07 24 4
gpt4 key购买 nike

编辑:这个问题已经回答,但我有另一个类似的问题,我不想为其打开一个新线程。

我正在使用 Mocha 和 Chai 来测试我的项目。

作为我代码的一部分,我创建了一个新用户并将他保存在我们的数据库中(以便测试用户可以在我们的应用程序上执行各种方法)。

通常,在每次测试后,我都想运行一个代码块,从数据库中删除用户,我使用“AfterEach” Hook 完成了这一操作。

我的问题是我有 1 个测试(将来可能会更多)不会创建用户(例如,“尝试在不注册的情况下登录”),所以我的 AfterEach 代码收到一个错误(不能删除不存在的东西)。

Mocha 是否提供了一种在某些测试中禁用“AfterEach”的方法?或者我的问题的其他解决方案。

编辑:添加的问题:我的 AfterEach Hook 涉及一个返回 promise 的异步方法。在 Mocha 文档中,我只看到了一个使用回调的异步 Hook 示例。我应该如何使用返回 promise 的 afterEach 钩子(Hook)

最佳答案

您可以嵌套 describe block ,这样您就可以对用户交互测试进行分组,并将“有用户”和“无用户”测试分组:

describe('user interaction', () => {

describe('with user in database', () => {
// these will run only for the tests in this `describe` block:
beforeEach(() => createUser(...));
afterEach (() => deleteUser(...));

it(...);
});

describe('without user in database', () => {
it(...);
});

});

关于node.js - 如何仅在特定测试时在 Mocha 上运行 'After' 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com