我觉得摩卡停止运行当前测试用例断言失败后,像这样的断言后摩卡流量控制失败
it('test', function(done) {
a.should.equal(b);
//if a is not equal to be, won't go here
//do something
done();
}
我需要继续断言失败后做的事情,我试图用的try ... catch ,但对于没有赶上“别人”,所以如果我做
try {
a.should.equal(b)
} catch(e) {
console.log(e)
done(e)
} finally {
//do something
done()
}
这将调用完成()两次,所以我要补充一个标志,
var flag = true;
try {
a.should.equal(b)
} catch(e) {
console.log(e)
flag = false
done(e)
} finally {
//do something
if(flag)
done()
}
我觉得这很复杂,所以我想知道是否有更简单的方法来做到这一点?
实际上我想在每个测试用例完成后执行它,所以我可以使用afterEach(),但“做某事”与每个测试用例都不同,所以我不认为我可以使用它。 – Keming
@KemingZeng你可以嵌套'describe'块,所以你可以为每个测试创建一个,并为每个测试分别设置一个'后'钩。 – robertklep
我使用另一种方式来做到这一点,但我认为在hook之后应该是一个很好的解决方案。谢谢! – Keming