Closed5
メモ:GitLabのFrontend testing standards and style guildelines
ピン留めされたアイテム
概要
- GitLabでのテスト2種類
- Jest
- JS unit test
- Integration testing
- RSpec feature tests with Capybara
- e2e integration testing
- Jest
- いつテスト書くか
- 新しい機能追加時
- バグ修正時にレグレッションテスト
Jest
- ブラウザでテストを実行する代わりにjestはjsdomを使うが、制限がある。
What and how to est
- ライブラリはテストしない
- モックはテストしない
- 複雑なロジックを持つ実装は、ユニットテストを書く
Common practices
- DOM要素をクエリするときは、その要素を一意的かつ意味的にターゲットにすることが最善
- 特定のFunction/Methodを
describe
test blocksを書いてテストするときは、method nameを記載する
describe('methodName', () => {
it('passes', () => {
expect(true).toEqual(true);
});
});
- Promiseをテストするときは、テストがasynchronousであることと、rejectionsがハンドルされていること
- テストで待ちが発生する場合、待ちの理由が不明瞭になるため
setTime
を使うことを避ける。代わりに、PromiseとAjaxを使う - テストの分離を確実に行う
- Jestのベストプラクティス
- プリミティブな値を比較するときは
toEqual
ではなくtoBe
を使う。その方が速い。 - より適切なマッチャーを選択する
-
toBeTruthy
とtoBeFalsy
は使わない。(expect(someBoolean).toBeFalsy()
passes whensomeBoolean === null
, and whensomeBoolean === false
.) -
toBeDefined
も避ける
- プリミティブな値を比較するときは
このスクラップは2022/07/03にクローズされました