Kotest概要
Kotlinのテストフレームワークについて紹介する。
分離モード(Isolation Modes)の設定により、テストエンジンがテストケース用のSpecインスタンスをどのように生成するかを制御できる。つまり、テストケースごとにテストインスタンスをどのように生成するかを決める。
効果的なテストコードを書くうえで、各テストケースのライフサイクルを管理することは重要である。ここではライフサイクルフックの使い方を説明する。
効果的なテストには、テストデータの生成、管理、整理が重要である。このセクションでは、Kotestを使ってテストデータをどのように管理するかを見ていく。
Non-deterministic Testingは、ソフトウェアの完全性を検証するのに役立つ。たとえば、並列プロセス、外部ネットワーク呼び出し、さまざまなシステムリソースへのアクセスなど、ランダム性や予測不能な要素を含むソフトウェアシステムを効果的にテストできる。
Kotestとモッキングフレームワークmockk、JaCoCoを一緒に使うことで、より堅牢で品質の高いテストを書ける。ここでは、テストの分離と依存関係管理を助けるmockkと、コードベースのどれだけの部分がテストされたかを測定できるコードカバレッジツールJaCoCoについて説明する。
KotestでのOrderingは、テスト実行の順序を制御する機能である。特定の順序でテストを実行したい場合や、特定条件に応じてテストをフィルタリングして実行する場合に便利である。
効果的なソフトウェアテストには、テストケースを作成し管理することが重要である。このセクションでは、Kotestを使ってテストケースを作成する方法について見ていく。
Kotest構成(Configuration)は、テスト実行の動作をカスタマイズし制御するために使われる。さまざまな設定オプションを提供し、ユーザーがテスト環境を望む形に調整できる。
ときには一般的なテストセットを作成し、特定の入力に再利用したい場合がある。Kotestでは、1つ以上のSpecに含められるテストを生成するテストファクトリを通じてこれを実現できる。