Jestをバージョン23からバージョン24にアップグレードした後、テストを実行すると、ほとんどすべてのテストで次のような警告メッセージが表示されます。
「記述」コールバックは値を返してはなりません。 "describe"から値を返すと、Jestの将来のバージョンでテストが失敗します。
付随するスタックトレースは、このモジュールを指しています。
addSpecsToSuite (node_modules/jest-jasmine2/build/jasmine/Env.js:443:15)
これは、関数の本文にステートメントが1つしか含まれていない場合は、中かっこを省略して、テストにアロー関数の短縮形を使用したいためです。次に例を示します。
describe('true', () =>
it('should be truthy', () =>
expect(true).toBeTruthy()));
it
ステートメントは明らかにundefined
以外のものを返すため、警告が表示されます。
私はこれを修正する2つの方法を見つけました:
①ショートカット矢印機能を使用しない
describe('true', () => {
it('should be truthy', () =>
expect(true).toBeTruthy());
});
②void
を使用して強制的に未定義を返す
describe('true', () =>
void it('should be truthy', () =>
expect(true).toBeTruthy()));
私はこれらのオプションのどちらも許容できないと思います。Jest(またはJasmine)を幸せにするためだけに何千ものテストをリファクタリングしたくありません。
だから私の質問は:
ショートハンドの矢印関数を使用するときにこれらの警告が発行されないようにJestを構成する方法はありますか?
Describeコールバック内でスローされた未処理の例外に関連している可能性があります。たとえば、存在しないメンバーのモック(テストブロック外)にアクセスしたいときに発生しました。
logger.info1111.mockImplementation((m, d) => console.info(m, d));