首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用mocha.js的错误处理

禁用mocha.js的错误处理
EN

Stack Overflow用户
提问于 2014-02-01 00:35:34
回答 2查看 2.6K关注 0票数 4

谁知道有没有办法禁用Mocha的错误处理?

我真的很想让异常冒泡起来,并在调试期间由浏览器处理。

更新:上下文是这样的。-某些代码抛出是一个意外错误。+我想禁用"try/catch“(类似于jasmine的测试)并被抛到chrome的调试器中。

这样我就可以检查应用程序在那个时刻的当前状态。听起来好像没有内置的东西,每当我在测试中遇到一些奇怪的错误时,我都需要手动完成这项工作。也许可以通过将代码包装为

代码语言:javascript
复制
try {
  somethingThatBreaks();
} catch(e) {
  debugger;
}
EN

回答 2

Stack Overflow用户

发布于 2014-02-01 01:36:33

Mocha安装自己的onerror处理程序来捕获异步代码中可能出现的异常。您可以使用以下命令禁用它:

代码语言:javascript
复制
window.onerror = undefined;

这是dangerous。只有在万不得已的情况下,才应该这样做。如果这是例行公事,Mocha将完全忽略异步代码中发生的错误。

如果您想要做的是让同步代码中的异常冒泡,我看不出这会实现什么。如果你想在Mocha接触到异常之前检查它,包装你的测试的try...catch块就可以做到这一点。

票数 2
EN

Stack Overflow用户

发布于 2014-02-01 01:01:12

Mocha的错误处理包含在以下code

代码语言:javascript
复制
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 ),但是如果测试失败,它很可能会破坏测试套件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21485213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档