Open6
Jest
Jestのit.each
同じようなテストでリクエストの内容によってエラーだったりよかったりするときに使う。テストコードが肥大化しない。
beforeEachとか
全てのテストの最初に書くだけじゃなくて、describeとitの間に書いたりできる。
レコードの挿入タイミングとかによさそう。
あいまいにテストをまわす
expect.objectContainingは、渡したオブジェクトのキー・バリューの組み合わせが比較対象に含まれているか検証します
自動挿入系のレコード以外が挿入されているか確認したりするときに使う。
expect.objectContaining({
created_at: expect.any(Date),
hoge: target_value,
}),
expectに値が入っているとして、こんな感じに確認する。
あとレコード作成時間みたいに、とにかく値が入っていることを確認したいが値自体はどうでもいいというときはexpect.any(Date)
みたいなのを使うといいかも。
Promiseを待つと遅い
await Promise.all([
osoi_function(),
osoi_function2(),
osoi_function3(),
]);
return Promise.resolve();
みたいにPromise.allをつかって並列で実行させると早くなる。
並列実行
Arrayの中身のEqualをみるとき
it('success', async () => {
const response = await request(app.getHttpServer())
.post('どっかのパス')
.send();
expect(response.status).toBe(201);
const expected = expect.arrayContaining(想定する配列);
const actual = response.body;
expect(actual).toEqual(expected);
});
こんな感じにする。