如何在摩卡块工作之前获得断言
How to get asserts in mocha before blocks to work?
如何在块工作之前获得mocha中的断言?如果我不应该这样做,请告诉我。目前,使用promise,如果使用catch块获得错误,我将添加一个assert来使before块失败。我想要的是它不能通过描述块,但我得到了两种可能的结果。1. 我的测试套件完全崩溃了。我必须等待每个测试的每个超时命中,因为before块失败。
before(function (done) {
promise()
.then(function () {
done();
})
.catch(function (error) {
assert(!error);
done();
});
});
我甚至试过这个,想,也许done从来没有被调用过。
before(function (done) {
promise()
.then(function () {
//no done here
})
.catch(function (error) {
assert(!error);
});
.finally(function () {
done();
});
});
到目前为止,为了避免崩溃和等待,并使其工作,我这样做了:
var beforeError;
before(function (done) {
promise()
.then(function () {
done();
})
.catch(function (error) {
beforeError = error;
done();
});
});
it('test something', function () {
assert(beforeError, 'Before block failed with error.');
});
我真的很好奇,如果有一个更好的方法去做这件事,如果我的before/beforeEach/after/afterEach块失败,它不会导致我等待年龄或我的套件崩溃!感谢S/O社区!:)
我不能说你使用done
回调,但是mocha 3.0现在支持在钩子之前的承诺。如果我这样写,我会让返回的promise抛出它自己的错误,这将使before钩子失败,而不会破坏套件。
before(function () {
return promise(<async behavior here>);
});
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Chai这样的断言库如何在不强制调用函数的情况下工作
- 如何在摩卡块工作之前获得断言
- 椅子's断言工作不正常
- jsMockito方法调用断言未按预期工作