我不明白为什么会出现这个错误。 当我使用newRequest时,我在调用时遇到RuntimeException makeRequest的(请求);方法
异常消息是:“ play.mvc.results.NotFound:POST / ” 但奇怪的是,在.url中,我指的是“/ dashboard”,而不是 “/”(当然,在POST请求的路径文件中很好地指出了url!)
感谢您的帮助。
这是我的测试类:
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);
}
}
答案 0 :(得分:1)
查看API文档,.url
指定它需要完整URL。我建议你做的是改为使用.action
。
这个的Javadoc是
完整操作(例如:Application.index)
或指定完整的网址,其中包括
http://localhost:9000/dashboard
如果您仍然遇到问题,最后一个选项是在createRequest
对象上使用Http.Request
方法,这样您就可以完全控制正在创建的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)