I am newbie in Java & play framework. Currently I'm using Play framework 2.0 and there are no class play.test.FunctionalTest. How to write functiona test ?
2
votes
2 Answers
1
votes
See the examples in your sample applications.
One of the ready-provided examples is at ${PLAY_FRAMEWORK}/samples/java/computer-database/test/FunctionalTest.java, quoting below:
import org.junit.*;
import java.util.*;
import play.mvc.*;
import play.test.*;
import play.libs.F.*;
import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;
public class FunctionalTest {
@Test
public void redirectHomePage() {
running(fakeApplication(), new Runnable() {
public void run() {
Result result = callAction(controllers.routes.ref.Application.index());
assertThat(status(result)).isEqualTo(SEE_OTHER);
assertThat(redirectLocation(result)).isEqualTo("/computers");
}
});
}
@Test
public void listComputersOnTheFirstPage() {
running(fakeApplication(), new Runnable() {
public void run() {
Result result = callAction(controllers.routes.ref.Application.list(0, "name", "asc", ""));
assertThat(status(result)).isEqualTo(OK);
assertThat(contentAsString(result)).contains("574 computers found");
}
});
}
@Test
public void filterComputerByName() {
running(fakeApplication(), new Runnable() {
public void run() {
Result result = callAction(controllers.routes.ref.Application.list(0, "name", "asc", "Apple"));
assertThat(status(result)).isEqualTo(OK);
assertThat(contentAsString(result)).contains("13 computers found");
}
});
}
@Test
public void createANewComputer() {
running(fakeApplication(), new Runnable() {
public void run() {
Result result = callAction(controllers.routes.ref.Application.save());
assertThat(status(result)).isEqualTo(BAD_REQUEST);
Map<String,String> data = new HashMap<String,String>();
data.put("name", "FooBar");
data.put("introduced", "badbadbad");
data.put("company.id", "1");
result = callAction(
controllers.routes.ref.Application.save(),
fakeRequest().withFormUrlEncodedBody(data)
);
assertThat(status(result)).isEqualTo(BAD_REQUEST);
assertThat(contentAsString(result)).contains("<option value=\"1\" selected>Apple Inc.</option>");
assertThat(contentAsString(result)).contains("<input type=\"text\" id=\"introduced\" name=\"introduced\" value=\"badbadbad\" >");
assertThat(contentAsString(result)).contains("<input type=\"text\" id=\"name\" name=\"name\" value=\"FooBar\" >");
data.put("introduced", "2011-12-24");
result = callAction(
controllers.routes.ref.Application.save(),
fakeRequest().withFormUrlEncodedBody(data)
);
assertThat(status(result)).isEqualTo(SEE_OTHER);
assertThat(redirectLocation(result)).isEqualTo("/computers");
assertThat(flash(result).get("success")).isEqualTo("Computer FooBar has been created");
result = callAction(controllers.routes.ref.Application.list(0, "name", "asc", "FooBar"));
assertThat(status(result)).isEqualTo(OK);
assertThat(contentAsString(result)).contains("One computer found");
}
});
}
}
-1
votes
play.test.FunctionalTest does not exist.
How to write a functiona test should read the document here.
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 and test-only tasks.
Using JUnit
The default way to test a Play 2 application is with [[JUnit| http://www.junit.org/]].
``` 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);
}
} ```