java - play 2.0中没有play.test.FunctionalTest怎么写功能测试?

标签 java playframework-2.0

我是 Java & play 框架的新手。目前我正在使用 Play framework 2.0 并且没有类 play.test.FunctionalTest。如何编写功能测试?

最佳答案

查看示例应用程序中的示例。

其中一个现成的示例位于 ${PLAY_FRAMEWORK}/samples/java/computer-database/test/FunctionalTest.java,引用如下:

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

            }
        });
    }

}

关于java - play 2.0中没有play.test.FunctionalTest怎么写功能测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10496207/

相关文章:

java - 如何解决java中的响应代码406错误?

java - 将 float 据发送到我的客户端应用程序

java - 根据用户的输入调整 JLayeredPane 的大小

java - JVM 何时会在堆栈跟踪中省略行信息,我该如何防止它发生?

java - 我如何允许作为接口(interface)实现的线程与 JWindow 对象进行通信?

scala - Slick 的日志记录选项

forms - 如何在不同的输入中显示表单的全局错误?

playframework-2.0 - 在 Play 框架中使用外部 jar

java - play framework migrate to 2.1.1让我很头疼

java.lang.NoClassDefFoundError : scala/StringContext