Documentation

You are viewing the documentation for the 2.2.x release series. The latest stable release series is 2.4.x.

§アプリケーションのテスト

テストのソースファイルは test フォルダに配置します。 Play コンソールで test (すべてのテストを実行) や test-only (ひとつのテストクラスを実行: test-only my.namespace.MySpec) タスクを実行すると、テストを実行することができます。

§JUnit を使う

Play アプリケーションのテストは、デフォルトで JUnit を使います。

package test;

import org.junit.*;

import play.mvc.*;
import play.test.*;
import play.libs.F.*;

import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;

public class SimpleTest {

    @Test 
    public void simpleCheck() {
        int a = 1 + 1;
        assertThat(a).isEqualTo(2);
    }

}

注意: test または test-only を実行するたびに、新しいプロセスがフォークされます。この新しいプロセスは JVM のデフォルト設定を使います。Build.scalaplay.Project.settings にカスタム設定を追加することができます。 例えば、以下のようにします:

javaOptions in (Test) += "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998",
javaOptions in (Test) += "-Xms512M",
javaOptions in (Test) += "-Xmx1536M",
javaOptions in (Test) += "-Xss1M",
javaOptions in (Test) += "-XX:MaxPermSize=384M"

§フェイクアプリケーション上で実行する

起動中のアプリケーションの依存するコードをテストする場合は、簡単に FakeApplication を利用することができます。

@Test
public void findById() {
  running(fakeApplication(), new Runnable() {
    public void run() {
      Computer macintosh = Computer.find.byId(21l);
      assertThat(macintosh.name).isEqualTo("Macintosh");
      assertThat(formatted(macintosh.introduced)).isEqualTo("1984-01-24");
    }
  });
}

このフェイクアプリケーションに対して設定値を追加 (または上書き) したり、プラグインをモックすることも可能です。例えば、 default という名前の インメモリデータベースに接続された FakeApplication を起動する場合は、次のように書きます。

fakeApplication(inMemoryDatabase())

注意: Ebean ORM を使うアプリケーションは、Play が自動生成する getter/setter に依存するコードで書かれているかもしれません。Play はフィールドアクセスについても、この生成された getter/setter を使うように書き換えます。Ebean のダーティチェックは、この setter の呼び出しに依存します。JUnit テストにおいてもこの組み合わせを使用するよう、Build.scalaplay.Project.settings に以下を追加することで、Play のフィールドアクセス書き換えを有効にする必要があります:

compile in Test <<= PostCompile(Test)

次ページ: 機能テスト


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。