gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:16:08 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

对于我需要特殊设置和拆解代码但无法与它们的兄弟代码区分开来的测试,我只是放置了一个带有空标题的 describe block :

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 会将那里的任何 失败视为失败的测试,句号。失败发生在传递给 it 的回调中的哪个位置并不重要。断言库允许您提供自定义错误消息,这可以帮助您找出到底是什么失败了,但是 Mocha 将以相同的方式在 it 中看到所有失败:测试失败。如果您希望 Mocha 以不同于测试失败的方式处理设置/拆卸代码中的失败,那么您必须使用我上面显示的 Hook 。

关于unit-testing - Mocha/Chai - 测试特定设置和拆卸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46281787/

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