谁知道有没有办法禁用Mocha的错误处理?
我真的很想让异常冒泡起来,并在调试期间由浏览器处理。
更新:上下文是这样的。-某些代码抛出是一个意外错误。+我想禁用"try/catch“(类似于jasmine的测试)并被抛到chrome的调试器中。
这样我就可以检查应用程序在那个时刻的当前状态。听起来好像没有内置的东西,每当我在测试中遇到一些奇怪的错误时,我都需要手动完成这项工作。也许可以通过将代码包装为
try {
somethingThatBreaks();
} catch(e) {
debugger;
}发布于 2014-02-01 01:36:33
Mocha安装自己的onerror处理程序来捕获异步代码中可能出现的异常。您可以使用以下命令禁用它:
window.onerror = undefined;这是dangerous。只有在万不得已的情况下,才应该这样做。如果这是例行公事,Mocha将完全忽略异步代码中发生的错误。
如果您想要做的是让同步代码中的异常冒泡,我看不出这会实现什么。如果你想在Mocha接触到异常之前检查它,包装你的测试的try...catch块就可以做到这一点。
发布于 2014-02-01 01:01:12
Mocha的错误处理包含在以下code中
if (this.async) {
try {
this.fn.call(ctx, function(err){
if (err instanceof Error || toString.call(err) === "[object Error]") return done(err);
if (null != err) return done(new Error('done() invoked with non-Error: ' + err));
done();
});
} catch (err) {
done(err);
}
return;
}
// sync
try {
if (!this.pending) this.fn.call(ctx);
this.duration = new Date - start;
fn();
} catch (err) {
fn(err);
}您可能会抛出带有捕获的错误(或者完全删除try..catch ),但是如果测试失败,它很可能会破坏测试套件。
https://stackoverflow.com/questions/21485213
复制相似问题