Repositoryのtest
これは実装部分の話
どういうこと?
なぜ?
殆ど、データ整形しか無い場合はテストの必要性をそもそもあまり感じないmrsekut.icon
テストの要件が見えていない
何をテストすればいいのかがわからない
DBの内容がおかしいことのテストとか?
Repositoryがcacheを管理しているときは、cacheのテストとかか
cacheにデータが有ればそれを返して、なければどこかから取ってくる、とか
getUserById(number)とかで、ちゃんとuserが返ってくるかとかか
DBもdummyであってほしい
SQLは仕様の列挙が型でできないので、仕様の列挙のためにも、Repositoryのtestがほしいmrsekut.icon
SQLの正当性のtest
この場合に、実際のDBを見てテストするのか、
この場合、ciなども鑑みて、その環境を簡易に作れるようにしておく必要がある
モック的なものを用意すればそれで済むのか
モックを用意する場合どのように用意するのか
repository層をmockする
これはrepositoryに依存するものをテストする時の話なので、このページには関係ない
mockを使わないテスト
Prisma
実際のDBと通信してテスト
jest-prismaが素晴らしい。テストケースごとにトランザクションで分離されて最終的にロールバックされるので、自動的にクリーンナップされる。
しかもtransaction in transactionも(DBエンジンによるかもしれないが)問題なくテストできる ref