我知道摩卡具有全球前后,每个测试之前和之后,但我想是测试特定的前后。像SoapUI一样。摩卡/柴 - 测试具体设置和拆除
例如,假设我有一个测试检查用户的创建是否有效。
我想在测试之前从数据库中删除用户,如果它存在的话。我希望测试能够确保用户在测试后被移除。但我不想为每个测试做这个,因为只有一个测试会真正创建用户。其他测试将删除用户,更新用户,未能创建已存在的用户等。
这是可能的,还是必须在测试中包含设置和拆卸代码?如果是这样,我如何确保设置和拆卸都正确执行,与测试结果无关?
我知道摩卡具有全球前后,每个测试之前和之后,但我想是测试特定的前后。像SoapUI一样。摩卡/柴 - 测试具体设置和拆除
例如,假设我有一个测试检查用户的创建是否有效。
我想在测试之前从数据库中删除用户,如果它存在的话。我希望测试能够确保用户在测试后被移除。但我不想为每个测试做这个,因为只有一个测试会真正创建用户。其他测试将删除用户,更新用户,未能创建已存在的用户等。
这是可能的,还是必须在测试中包含设置和拆卸代码?如果是这样,我如何确保设置和拆卸都正确执行,与测试结果无关?
对于那些我需要有特殊的安装和拆卸代码,但不是来自他们的兄弟姐妹,否则区分的测试,我只是把一个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",() => {});
});
});
});
这是可能的,还是必须在测试中包含设置和拆卸代码?如果是这样,我如何确保设置和拆卸都正确执行,与测试结果无关?
您可以放安装和拆卸测试本身的代码(内部的即传递给it
回调)。但是,摩卡将把任何故障视为测试,期间。在传递给it
的回调中发生故障并不重要。断言库允许您提供自定义错误消息,这可以帮助您找出究竟发生了什么故障,但Mocha将以同样的方式看到it
中的所有失败:测试失败。如果您希望Mocha以与测试失败不同的方式处理安装/拆卸代码中的故障,那么您的必须使用来使用上面显示的钩子。
谢谢,那我就知道了。所以,虽然有点迂回,但很高兴知道有办法处理安装和拆卸。 –