Karma和React,有警告导致错误

gce*_*edo 11 mocha.js karma-runner reactjs karma-mocha

我正在使用Karma和mocha来测试我的React组件.当PropTypes不匹配时,我会显示一些警告.然而,让这些警告引起实际错误将是非常有趣的,以便跟踪测试并修复它.

你知道怎么做到这一点吗?

Ale*_*erg 16

您可以console.warn使用自己的方法替换该方法,并在提供的消息与特定模式匹配时抛出.

let warn = console.warn;
console.warn = function(warning) {
  if (/(Invalid prop|Failed propType)/.test(warning)) {
    throw new Error(warning);
  }
  warn.apply(console, arguments);
};
Run Code Online (Sandbox Code Playgroud)


chm*_*son 6

接受答案的小改进:console.error而不是console.warn像西班牙火车那样提到,为正则表达式添加了"Failed prop type",因为它只适用于React 15.3.1,并使代码更加严格友好.

const error = console.error;
console.error = function(warning, ...args) {
  if (/(Invalid prop|Failed prop type)/.test(warning)) {
    throw new Error(warning);
  }
  error.apply(console, [warning, ...args]);
};
Run Code Online (Sandbox Code Playgroud)