Kotestフレームワーク(Framework)
Kotlinのテストフレームワークについて紹介する。
Kotlinのテストフレームワークについて紹介する。
Kotestのさまざまな拡張プロジェクトについて説明する。
Kotlin の Assertion と Matcher について説明する。
Property Testing について説明する。
Kotest IntelliJ プラグインについて紹介する。
Kotest のプロパティテストは、入力と期待出力を定義し、プロパティを満たす複数の入力を生成してテストする方法である。
テストでは、特定の条件が真であるかを確認するためにAssertionを使用する。KotlinではKotestを通じてさまざまな種類のAssertionとMatchersを活用できる。このセクションではAssertionとMatchersについて詳しく見ていく。
Kotestは他の多くのライブラリやフレームワークと統合される。一部はKotestチームが提供し、一部はサードパーティによって保守、ホストされている。
Kotest の IntelliJ Plugin について紹介する。
Kotlinのテストフレームワークについて紹介する。
Kotestは、依存性注入のためにSpringフレームワークを使用するコードをテストできるSpring拡張機能を提供する。
Kotest の IntelliJ Plugin Test Explorer について紹介する。
Kotest でプロパティテストを実行するために使用される 2 つの関数バリエーションは forAll と checkAll である。
KotestはKotlinで書かれた強力なテストフレームワークである。プロジェクト設定の方法について説明する。
Ktor拡張について説明する。
Kotest の IntelliJ Plugin でプロパティを設定する方法について紹介する。
Kotest のジェネレーターは、プロパティベーステストをサポートするために使用されるツールである。
Kotestの基本的な書き方、テスト実行、レポートについて説明する。
Kotestではカスタムmatcherを作成して特定条件を確認できる。
Kotestのシステム拡張(System Extensions)は、Javaのjava.lang.Systemクラスに関連してシステム呼び出しに対するAssertionを提供する。この拡張は、システム呼び出しの例外をテストし、システム出力やシステム終了のような動作を確認するために使われる。
Kotlin のジェネレーターの完全な一覧を紹介する。
Kotestはさまざまなテストスタイル(Testing Styles)を提供している。ここでは、各テストスタイルについて説明する。
Kotest ジェネレーター操作(Generator Operations)として、Next、Filter、Map、FlatMap、Merging、Bind を紹介する。
Testcontainersは、テスト時にコンテナベースの外部リソースを使用できるようにするツールである。これにより実際の環境に近いテスト環境を構築し、外部リソースに対するテストをより簡単に行える。ここではKotestでTestcontainersを活用する方法について説明する。
Kotestでは手がかり(Clues)を使用すると、Assertionに対して詳細な説明を提供できる。
テストを無効にする方法はいくつかある。テスト内でハードコードすることも、実行時に条件付きで無効にすることもできる。
Kotlin の例外を検証するアサーションについて説明する。
KotestのEmbeddedKafkaListenerは、Apache Kafkaを組み込み形式でテスト環境から使用できるようにする拡張機能である。
分離モード(Isolation Modes)の設定により、テストエンジンがテストケース用のSpecインスタンスをどのように生成するかを制御できる。つまり、テストケースごとにテストインスタンスをどのように生成するかを決める。
効果的なテストコードを書くうえで、各テストケースのライフサイクルを管理することは重要である。ここではライフサイクルフックの使い方を説明する。
MockServerは仮想HTTPサーバーを提供する。このライブラリを使用すると、別途Mockingライブラリ(mockkなど)を使用せず、実際のサーバーと通信するかのようにテストを行える。
プロパティテストを実行すると、シード値から作成されたランダムソースを使用して値が生成される。
Soft Assertions は assertSoftly 関数を使って複数のアサーションをまとめて実行するために使用する。
Kotest の Property Testing 構成について説明する。
KotestはJUnit XML形式のテストレポートを生成できる。この形式はCI/CDツールなどの自動化されたテスト実行環境で使用できる。JUnit XMLレポートはテスト実行結果を記録し、それを分析してテスト結果に関する統計や品質指標を生成するために使用される。
Kotest は Matcher に加えて、Matcher に関連するインスペクターという概念をサポートする。インスペクターはコレクション関数の拡張関数で、指定したアサーションがコレクション要素のどのグループで成立するかを検証できる。
KotestのExtensionsは、Kotestテスト実行フレームワークのテストライフサイクルに統合できるさまざまな機能を提供する拡張機能である。
KotestはHTML形式のテストレポートを生成できるHTML Reporterを提供する。これによりテスト実行結果を視覚的に確認でき、テスト実行に関する詳細情報を提供する。
Kotestでコルーチンをテストする方法について説明する。
Assertion Mode は、アサーションを実行しないテストが実行された場合の動作を制御するオプションである。
Allure拡張について紹介する。
プロパティベーステストで最初に見つかった失敗ケースには、実際にテストを失敗させる原因ではない多くの複雑さが含まれていることがある。
Kotest のコアマッチャーの種類を紹介する。
Kotestでの例外テストについて説明する。
現在時刻インスタントリスナー(Current Instant Listeners)拡張について紹介する。
ジェネレーターが期待どおりに構成されているかを確認するために、Kotest で生成される値の種類を知りたい場合がある。
Collection、Iterable、Array 型で使用できる豊富なマッチャーを紹介する。
効果的なテストには、テストデータの生成、管理、整理が重要である。このセクションでは、Kotestを使ってテストデータをどのように管理するかを見ていく。
Kotest Koin拡張について紹介する。
JSON マッチャーについて説明する。
一部のプロパティテスト設定は、すべてのプロパティテストに対してグローバルに設定できる。
Non-deterministic Testingは、ソフトウェアの完全性を検証するのに役立つ。たとえば、並列プロセス、外部ネットワーク呼び出し、さまざまなシステムリソースへのアクセスなど、ランダム性や予測不能な要素を含むソフトウェアシステムを効果的にテストできる。
WireMock拡張について紹介する。
Ktor マッチャーについて説明する。
Kotest は Arrow 用のジェネレーターを提供するオプションモジュールを提供する。
Kotestとモッキングフレームワークmockk、JaCoCoを一緒に使うことで、より堅牢で品質の高いテストを書ける。ここでは、テストの分離と依存関係管理を助けるmockkと、コードベースのどれだけの部分がテストされたかを測定できるコードカバレッジツールJaCoCoについて説明する。
Test Clock拡張について説明する。
Kotlinx Datetime マッチャーについて説明する。
Kotest は KotlinX DateTime 用のジェネレーターを提供するオプションモジュールを提供する。
KotestでのOrderingは、テスト実行の順序を制御する機能である。特定の順序でテストを実行したい場合や、特定条件に応じてテストをフィルタリングして実行する場合に便利である。
Pitest拡張について紹介する。
Arrow マッチャー拡張ライブラリの現在のすべてのマッチャーを一覧する。
汎用データ生成のための追加 Arbs を紹介する。
効果的なソフトウェアテストには、テストケースを作成し管理することが重要である。このセクションでは、Kotestを使ってテストケースを作成する方法について見ていく。
BlockHound拡張について紹介する。
JVM でテストを実行するとき、Kotest はより複雑な Arb を自動生成する機能をサポートする。
Kotestでリソースを自動的に閉じる方法と、テストに必要なファイルやディレクトリを一時的に作成する方法について説明する。
Konform マッチャーは、指定したオブジェクトが検証に成功したか、または検証に失敗したかをテストで確認するために使用できる。
Kotest構成(Configuration)は、テスト実行の動作をカスタマイズし制御するために使われる。さまざまな設定オプションを提供し、ユーザーがテスト環境を望む形に調整できる。
Klock マッチャーについて説明する。
ときには一般的なテストセットを作成し、特定の入力に再利用したい場合がある。Kotestでは、1つ以上のSpecに含められるテストを生成するテストファクトリを通じてこれを実現できる。
コンパイラマッチャーについて説明する。
Kotestテスト結果を出力する方法について説明する。
Jsoup マッチャーについて説明する。
テストに呼び出し時間制限を設定してテストする方法について説明する。
Kotestで早期失敗する方法、空のテストスイートの場合に失敗させる方法などについて説明する。