13

MochaでKarmaを使用して、 Reactコンポーネントをテストしています。PropTypes が一致しない場合、いくつかの警告が表示されます。ただし、テストを追跡して修正するために、これらの警告が実際のエラーを引き起こすようにすることは非常に興味深いことです。

これがどのように達成できるか知っていますか?

4

3 に答える 3

18

メソッドを独自のものに置き換えて、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);
};
于 2015-04-15T15:16:58.123 に答える
10

受け入れられた回答の小さな改善: spain-train が言及しconsole.errorた代わりに、'Failed prop type' を正規表現に追加しました。これは、React 15.3.1 でのみ機能し、コードをより厳密な eslint フレンドリーにしました。console.warn

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]);
};
于 2016-09-28T16:10:48.943 に答える