[Catalyst] Unit tests for controllers based on
Catalyst::Controller::REST?
James Russo
jr at halo3.net
Wed Dec 29 04:32:11 GMT 2010
On Dec 28, 2010, at 11:06 PM, Peter Karman wrote:
> James Russo wrote on 12/28/10 6:47 PM:
>> Hello,
>>
>> Does anyone there some examples of unit tests for a controller which is based on Catalyst::Controller::REST? There was some discussion on the list a few years ago, and I think the conclusion was to use LWP directly and not Test::WWW::Mechanize::Catalyst. It seems that using the methods do not give you access to passing actual body content and content-type headers? There are getting overridden somewhere along the line. I'm going to continue to research it, but figured I'd ask here before I spend too much time on it.
>>
>
> http://cpansearch.perl.org/src/KARMAN/CatalystX-CRUD-0.51/t/03-rest.t
It seems the following code actually creates a request where the body of the request is the URL encoded key/values, in this case would be "content=hello%20world". Since I need to send JSON or XML data, I needed to specify the content myself, so this wouldn't work.
# create
ok( $res = request(
POST( '/rest/file/testfile', [ content => 'hello world' ] )
),
"POST new file"
);
This works as expected allowing me to specify the actual content and content-type of the request.
# create
ok($response = request(
POST('/appointment','content-type' => 'application/json', 'content' => to_json($foo)
),
"create new appointment"));
Just wanted to put it out there in the archives for the next person.
thanks,
-jr
More information about the Catalyst
mailing list