Documentation

You are viewing the documentation for the 2.2.0 release in the 2.2.x series of releases. 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)

次ページ: 機能テスト