今日新しいチームで早速モブプロしていただいた時に Jest のテストに登場する用語や、どういうテスト名にすべきかみたいな話になった。自分は別に一家言あるわけではないけど、確かに describe
とか it
とかは英語圏以外には若干不親切かなと思った。
ちなみにJestのドキュメントをみると、 test
の alias が it
となっていて、別にこの二つに違いは無い。
jestjs.io
StackOverflow の回答をみても、特に違いはなく、英語の文法的に自然な形にしたかったら it
が使えるよみたいな感じ。
stackoverflow.com
イメージとしては
describe('ちいかわ', () => { it('is small', () => { ... }); it('is kawaii', () => { ... }); });
のように、「ちいかわを説明 (describe) せよ」というのが1行目で、その後続くテストケースが自然文として it is small
や it is kawaii
として読めるよねということ。
確かに英語ネイティブだとこれ読みやすくて便利かもしれないけど、そうでない人間にとってはタイプ数が少ない以外あまりメリットがない気がする。なので別に it
にこだわらず test
で書けば良いような気がした。
describe
と test
の使い分けとしては、そもそも機能としては describe
は関連するテストをグループ化するものなので、関連しているならまとめれば良いというだけではある。ただ、 test
がユースケースや振る舞いを表現しているっぽさがあるので、そう考えると describe
はどういうモジュールや機能なのか、テストする対象を記述するのがよいかもしれない。