MochaでKarmaを使用して、 Reactコンポーネントをテストしています。PropTypes が一致しない場合、いくつかの警告が表示されます。ただし、テストを追跡して修正するために、これらの警告が実際のエラーを引き起こすようにすることは非常に興味深いことです。
これがどのように達成できるか知っていますか?
メソッドを独自のものに置き換えて、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);
};
受け入れられた回答の小さな改善: 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]);
};