Schienen-JSON-API-Test-POST-request mit PARAMETER in JSON

Dies ist ein problem, das beschäftigt mich seit einiger Zeit. Baue ich eine API-Funktion, die erhalten sollten, die Daten in json und Antwort im json-Format. Mein controller tests gut laufen(Seit ich Abstrakt sind, dass Sie die Daten bekommt da schon Dekodieren von JSON und nur die Antwort interpretiert werden muss ).

Weiß ich Auch, dass die Funktion läuft einwandfrei, da habe ich curl verwendet um es zu testen mit JSON-Argumente, und es funktioniert perfekt.
(ex: curl-i -- - header "Accept: application/json" --header "Content-Type: application/json" -d '{"test":{"email":"[email protected]"}}' )

Aber natürlich möchte ich schreiben, Wunsch(feature) zum testen der dies automatisch, und die Art und Weise sehe ich es, die Sie arbeiten sollten, genau wie LOCKE, D. H., trifft meinen Dienst, wie es war, einen externen Aufruf. Das bedeutet, dass ich gerne weitergeben möchte die Argumente im JSON-Format und eine Antwort erhalten. Ich bin ziemlich verloren, da alle die Beispiele, die ich kann sehen, wie Menschen behandeln Argumente wie es wurde bereits entschlüsselt.

Meine Frage ist: ich bin nach einer falschen Prämisse aus, wenn Sie wollen, senden Sie die Argumente und request als JSON ein, da ich testen, dass die Schienen funktioniert, denn das ist seine Verantwortung? Aber ich würde gerne sehen, wie robust mein code sein, um falsche Argumente und möchte versuchen mit JSON.

etwas dieser Art:

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

Wissen Sie, wie das möglich ist? und bitte lassen Sie mich wissen, wenn Sie denken, ich Teste es falsch.

alles gute,

Andre

Schreibe einen Kommentar