Documentation

You are viewing the documentation for the 2.1.x release series. The latest stable release series is 3.0.x.

§Testing your application

Test source files must be placed in your application’s test folder. You can run tests from the Play console using the test (run all tests) and test-only (run one test class: test-only my.namespace.MySpec) tasks.

§Using JUnit

The default way to test a Play 2 application is with 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);
    }

}

§Running in a fake application

If the code you want to test depends on a running application, you can easily create a FakeApplication on the fly:

@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");
    }
  });
}

You can also pass (or override) additional application configuration, or mock any plugin. For example to create a FakeApplication using a default in-memory database:

fakeApplication(inMemoryDatabase())

Next: Writing functional tests


Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.