Неожиданная ошибка при использовании newRequest в FunctionalTests - PullRequest
0 голосов
/ 06 июня 2011

Я не понимаю, почему у меня есть эта ошибка. Когда я использую newRequest, у меня возникает RuntimeException при вызове makeRequest (запрос); способ.

Сообщение об исключении: " play.mvc.results.NotFound: POST / " Но что странно, так это то, что в .url я указываю "/ dashboard", а не «/» (и, конечно, URL-адрес хорошо указан в файле маршрутов для запросов POST!)

Спасибо за вашу помощь.

Вот мой тестовый класс:

public class DashboardTest extends FunctionalTest {
    protected Request ajaxRequest;

    @Before
    public void _setUp() {
        Fixtures.deleteDatabase();
        Fixtures.loadModels("fixtures/accounts.yml");

        ajaxRequest = newRequest();
        //ajaxRequest.headers.put("X-Requested-With", new Header("X-
Requested-With", "XMLHttpRequest"));
        ajaxRequest.method = "POST";
        ajaxRequest.url = "/dashboard";
    }

    @Test
    public void testAuthenticateWithValidDataAjax() {
        ajaxRequest.params.put("email", "john.sm...@gmail.com");

        Response response = makeRequest(ajaxRequest);
        assertIsOk(response);
        assertContentType("application/json", response);
    }
}

1 Ответ

1 голос
/ 08 декабря 2011

При просмотре документации API, .url указывает, что ему нужен полный URL.Вместо этого я предлагаю вам использовать .action.

Javadoc для этого:

Полное действие (например: Application.index)

или укажите полный URL, который будет включать

http://localhost:9000/dashboard

Последний вариант, если у вас все еще есть проблемы, - это использовать метод createRequest для объекта Http.Request,что дает вам полный контроль над объектом запроса, который вы создаете.Подпись выглядит так

createRequest

public static Http.Request createRequest(java.lang.String _remoteAddress,
                                         java.lang.String _method,
                                         java.lang.String _path,
                                         java.lang.String _querystring,
                                         java.lang.String _contentType,
                                         java.io.InputStream _body,
                                         java.lang.String _url,
                                         java.lang.String _host,
                                         boolean _isLoopback,
                                         int _port,
                                         java.lang.String _domain,
                                         boolean _secure,
                                         java.util.Map<java.lang.String,Http.Header> _headers,
                                         java.util.Map<java.lang.String,Http.Cookie> _cookies)
...