今日新しいチームで早速モブプロしていただいた時に 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 はどういうモジュールや機能なのか、テストする対象を記述するのがよいかもしれない。