编辑:这个问题已经回答,但是我有另一个类似的问题,我不想打开新帖子。
我正在使用Mocha和Chai来测试我的项目。
作为我的代码的一部分,我创建了一个新用户并将其保存在我们的数据库中(因此测试用户可以在我们的应用程序上执行各种方法)。
通常,在每次测试之后,我都希望运行一个代码块,从DB中删除用户,我使用“AfterEach”挂钩。
我的问题是我有一个测试(未来可能更多)没有创建用户(例如,'尝试登录而不注册'),所以我的AfterEach代码收到错误(不能删除不存在的东西。)
Mocha是否提供了在某些测试中禁用'AfterEach'的方法?或者我的问题的其他解决方案。
编辑:添加了问题:我的AfterEach挂钩涉及一个返回promise的异步方法。在Mocha文档中,我只看到了一个与回调一起使用的异步钩子的例子。我怎么应该使用返回promise
的afterEach钩子答案 0 :(得分:6)
您可以嵌套describe
块,这样您就可以对用户交互测试进行分组,并将"与用户"分组。和#34;没有用户"测试:
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(...);
});
});