Hey everyone,

This is a problem that has been bothering me for some time. I am building 
an API function that should receive data in json and response in json. My 
controller tests run fine(Since I abstract that the data gets there already 
decode from JSON and only the answer needs to be interpreted ). 

I Also know that the function runs fine since I have used curl to test it 
with JSON arguments and it works perfectly. 
(ex: curl -i --header "Accept: application/json" --header "Content-Type: 
application/json" -d '{"test":{"email":"and...@benjamin.dk"}}' 
<url_with_the_service>)

But obviously I would like to write request(feature) tests to test this 
automatically and the way I see it they should work exactly like curl, 
i.e., hit my service like it was an external call. That means that I would 
like to pass the arguments in JSON and receive an answer. I am pretty lost 
since all the examples I can see people treat arguments as it was already 
decoded. 

My question is: I am following a wrong premise in wanting to send the 
arguments and request as a JSON one since i will be testing that rails 
works, because this is its responsibility? But I would like to see how 
robust my code his to wrong arguments and would like to try with JSON.

something of this type:

it "should return an error if there is no correct email" do
  params = {:subscription => {:email => "andre"}}

  post "/magazine_subscriptions", { 'HTTP_ACCEPT' => "application/json", 
'Content-Type' => 'application/json', 'RAW_POST_DATA' => params.to_json }
end

Do you know how this is possible? and please let me know if you think I am 
testing it wrong.

all the best,

Andre

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/2e689330-f4cd-426c-9c63-e42ee4e707de%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to