IntelliJ IDEA 2024.1 ヘルプ

Spock 入門

Spock(英語) は、テストを自動化するために使用できる Java および Groovy コードのテストフレームワークです。IntelliJ IDEA は、完全な Spock 統合と、スポックフレームワークの機能強化スポック ADB などのサードパーティプラグインを介して有効にできる追加の Spock 機能をサポートします。

プロジェクトの作成

Spock フレームワークがどのように機能するかを確認するには、通常の Gradle プロジェクトを作成します。

Spock のプロジェクトを作成する

  1. IntelliJ IDEA を起動します。

    ウェルカム画面が開いたら、新しいプロジェクトをクリックします。

    それ以外の場合は、メインメニューのファイル | 新規 | プロジェクトに移動します。

  2. 左側のリストから、Java を選択します。

    Spock は Java と Groovy のテストに使用されるため、デフォルトの Java オプションのままにしておくことができます。後からいつでも Groovy 言語をプロジェクトに追加できます。

    Spock new project
  3. 提案のリストから、次のオプションを追加して構成します。

    • 名前 : 作成するプロジェクトの名前を追加します。例: spock-tutorial

    • ロケーション : プロジェクトの場所へのパスを追加します

    • Git リポジトリ : プロジェクトを作成して Git にアップロードする場合は、このオプションを選択できます。

    • ビルドシステム : プロジェクトで使用するビルドツールを選択します。例: Gradle。

    • JDK : プロジェクト SDK を構成します。Java ベースのアプリケーションを開発するには、JDK(Java Development Kit)が必要です。

      必要な JDK が IntelliJ IDEA ですでに定義されている場合は、検出された JDK のリストからそれを選択します。

      コンピューターに必要な JDK がない場合は、JDK のダウンロードを選択します。次のダイアログで、JDK ベンダーとバージョンを指定し、必要に応じてインストールパスを変更します。

    • Gradle DSL : プロジェクトに適切な DSL を選択します。Spock では通常 Java または Groovy を使用するため、推奨される Gradle オプションをそのままにしておくことができます。

    詳細設定が必要な場合は、詳細設定セクションで構成できます。

  4. 必要なオプションの選択が終了したら、作成をクリックします。

    IntelliJ IDEA は Gradle プロジェクトを作成し、必要な依存関係をダウンロードして、適切なプロジェクト構造を設定します。

依存関係を設定する

基本的な Gradle プロジェクトが作成されたら、Spock のテストを作成するために、追加されたデフォルトの JUnit5 依存関係の代わりに Spock 依存関係を Gradle ビルドファイルに追加する必要があります。

Spock の依存関係を追加する

  1. エディターで build.gradle ファイルを開きます。

  2. build.gradle で、Alt+Insert を押して、Maven アーティファクト依存関係を追加を選択します。

  3. 開いたダイアログで、スポックコア(英語)ライブラリの最新バージョンを検索します。

  4. 検索結果のリストから必要な項目を選択し、追加をクリックします。

    依存関係が build.gradle ファイルに追加されます。

    Spock テストは Groovy で記述されているため、Spock 依存関係を追加したのと同じ方法で Groovy 依存関係を追加します。3.0.8 バージョンを使用してください。

  5. 両方の依存関係が testImplementation として宣言されていることを確認し、他の JUnit 依存関係は必要ないため、削除してください。

    build.gradle ファイルに次のコードが表示されます。

    dependencies { testImplementation 'org.codehaus.groovy:groovy-all:3.0.8' testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' }
  6. Groovy プラグイン(英語)build.gradle ファイルに追加します。

    plugins { id 'java' id 'groovy' }
  7. build.gradle ファイルに加えたすべての変更をロードします。エディターで Gradle の変更をロードアイコンをクリックするか、Ctrl+Shift+O を押します。

    IntelliJ IDEA は、新しい依存関係をダウンロードし、古い依存関係を削除して、プロジェクトを正しく構成します。

簡単なアサーションを書く

テストの作成を開始する前に、Java 言語と Groovy 言語が混在するプロジェクトを作成したため、プロジェクトに groovy フォルダーを作成したことを確認してください。このようにして、Groovy コードを groovy フォルダーに保持し、Java コードをその java フォルダーに保持することができます。

Groovy フォルダーを追加する

  1. プロジェクトツールウィンドウで、test フォルダーを右クリックし、新規 | ディレクトリを選択します。

  2. Gradle では Groovy プラグインが使用されているため、開いたウィンドウで、IntelliJ IDEA はリストに groovy オプションを表示します。

    Add a Groovy test folder

    groovy を選択し、Enter を押します。

    IntelliJ IDEA は groovy ディレクトリを test モジュールに追加し、テストの作成を開始できます。

スポックのテストを書く

非常に単純なテストを作成することから始めることができるため、Spock テストがどのように見えるかを確認できます。

  1. プロジェクトツールウィンドウで、groovy フォルダーを右クリックし、新規 | Groovy クラスを選択します。

  2. 開いたウィンドウで、クラス名の前に完全なパッケージ名を入力して、パッケージとディレクトリの構造を作成します。スポックテストはしばしば Specification と呼ばれるため、テストを ExampleSpecification と呼ぶことができます。

  3. Groovy クラスを追加したら、エディターで開きます。

  4. このクラスが Spock の仕様(英語)クラスを拡張していることを確認してください。

    Extend Spock test class
  5. クラス内で、Alt+Insert を押し、テストメソッドを選択して、Spock 仕様のテストメソッドを生成します。

    Generated Test method

    これは、Spock または Groovy コードの記述にあまり慣れていない場合に特に役立ちます。これは、IntelliJ IDEA が必要な基本構造を生成するためです。

    次のコードを確認してください。

    class ExampleSpecification extends Specification { def "should be a simple assertion"() { } }

    ご覧のとおり、メソッドは def キーワードで定義されており、Spock のメソッド名は文字列にすることができます。これは、テストを作成するときに役立ちます。テキスト形式により、期待する正確な動作を柔軟に説明できます。

  6. スポックテストでは、アノテーションや特定のテストメソッド名の形式を使用して、テストするメソッドを定義しません。代わりに、ラベルを使用します。このような単純なテストでは、expect を使用して、予想される最も単純な動作を定義できます。

    次の例を確認してください。

    def "should be a simple assertion"() { expect: 1 == 1 }

    ご覧のとおり、Spock は、少なくとも通常は、Assertions または Assert キーワードも使用しません。代わりに、doubleequals のような単純なチェックを使用できます。should be a simple assertion メソッドは、単純な予想される動作を指定します。つまり、数値 1 は 1 に等しい必要があります。これは現実的なテストケースではありませんが、Spock テストの基本を示しています。

  7. テストが実際に機能し、正しいことをテストしていることを確認するために、最初にテストが失敗するのを確認することは常に役立ちます。テストが失敗すると、Spock は、失敗したものとその理由を正確に示す役立つエラーメッセージを表示します。

    テストが失敗することを確認するには、次のコードを使用してテストを実行します

    def "should be a simple assertion"() { expect: 1 == 0 }

    実行ツールウィンドウで結果とエラーメッセージを確認してください。

Spock テストの作成と Groovy コードの使用に関するヒントの詳細については、スポックブログ投稿(英語)を参照してください。

スポックテストを実行する

作成したテストは、エディターガターまたはメインメニューを使用して実行できます。

スポックテストを実行する

  1. エディターで、ガターの the Run button をダブルクリックします。

    または、Shift+F10 を押すこともできます。

  2. 実行ツールウィンドウで結果を確認します。

    ご覧のとおり、テストに合格しました。

    Run tool window / Spock test output

    コードを変更できるため、テストは失敗します。

    Spock test failed

デフォルトでは、Gradle プロジェクトの場合、IntelliJ IDEA は Gradle を使用してテストを実行します。つまり、IDE は、継続的インテグレーションまたはビルド環境と同じプロセスを使用してテストを実行します。

ただし、プロジェクト内のこのような単純なコードでは、Gradle ビルドはコードやリソースの生成などの余分なことは何もしていません。この場合、IntelliJ IDEA テストランナーを使用する方が高速です。

テストランナーを変更する

  1. Ctrl+Alt+S を押して設定を開き、ビルド、実行、デプロイ | ビルドツール | Gradle を選択します。

  2. 右側のオプションから、次でテストを実行ドロップダウンリストで IntelliJ IDEA を選択します。

  3. 変更を保存するには、OK をクリックします。

    これで、テストを実行すると、IntelliJ IDEA はネイティブのテストランナーを使用します。