【发布时间】:2012-12-11 21:51:12
【问题描述】:
我正在为使用 Mojolicious 框架开发的应用创建测试用例。我正在测试路由以对进行的 REST 调用做出适当的响应。我使用 JSON 作为服务器和客户端之间的通信方式。要测试GET、POST 和DELETE 请求,我使用以下函数
GET : get_ok()POST: post_json_ok()DELETE: delete_ok()
但对于PUT,我无法使用put_ok()。我使用 put_ok() 的例子是 my $t = Test::Mojo->new;$t->put_ok('this/is/url/to/resource'=>{ "element" => "modified value"})->status_is(204)
我每次都收到错误的请求状态(400),因此测试失败。我使用Test::Mojo 来测试我的应用程序。
其他信息:
$t->put_ok('http://localhost:3000/application/instances/system/test'=>{"model" => "testing put"})->status_is(204);
这是对尝试的 PUT 请求的精确测试。model 是资源 test 的属性,正在尝试将其更改为 testing put 和预期的状态响应是204。
到控制器的映射是由
$r->route('/application/instances/system/:id, id => qr/[A-Za-z0-9 ]+/ -> via('put')
->to(controller => 'system', action => 'update_sys');
此路由调用system 控制器中的update_sys 方法,这就是资源的定位方式。
【问题讨论】:
-
我没有看到
put_ok,我看到了get_ok。 -
@Bill Ruppert
this link 解释了put_ok
标签: perl testing mojolicious