HTTP POST XML Inhalt von Gurke

7

Ich versuche, XML-Inhalt über POST an eine Controller-Methode ('Index') in einem einfachen Rails-Projekt zu senden. Es ist nicht RESTful, da mein Modellname anders ist, sagen wir "Autos". Ich habe folgendes in einem Funktionstest, der funktioniert:

%Vor%

Ich versuche jetzt Gurke (0.4.3) und würde gerne wissen, wie ich die POST-Anfrage in einer "When" -Klausel simulieren kann. Ich habe nur eine Controller-Methode 'index', und ich habe folgendes in config / routes.rb:

%Vor%
  1. Webrat in Gurke ist nur für HTML, und kann nicht POST?
  2. @ request Variable ist nicht verfügbar in Gurkenumgebung?
  3. Wenn ich etwas wie 'visit index' (vorausgesetzt, es ist ein Parse-Controller, eine Indexmethode) in features / step_definitions / car_steps.rb benutze, erhalte ich den folgenden Fehler:
  

undefinierte Methode 'index' für # (NoMethodError)

Schätzen Sie Vorschläge zur Durchführung von Integrationstests mit Cucumber für HTTP POST mit XML-Inhalt.

    
mbuf 12.11.2009, 13:24
quelle

3 Antworten

11

Webrat wird dir hier nicht helfen, es ist für browserbasierte Interaktionen. Wenn du also eine API spezifizierst, wird es nicht helfen.

Sie können "Post" in Cucumber verwenden, aber Sie müssen den vollständigen Pfad zur Aktion angeben, nicht nur die Aktion. Übergeben Sie auch den Content-Type-Header, damit Rails weiß, dass Sie XML übergeben.

%Vor%

Auf der Antwortseite können Sie Folgendes tun:

%Vor%     
Patrick Ritchie 12.11.2009, 14:48
quelle
12

Patrick Ritchies Lösung hat mir auch geholfen, aber ich musste eine kleine Änderung vornehmen, damit es mit Rails 3 funktioniert.

%Vor%

Ich denke, das liegt daran, dass Rails in v3 enger in Rack integriert ist.

    
Louis Rose 01.09.2010 17:31
quelle
1

Vielen Dank, ich habe den ganzen Tag geschworen. Ich werde ein Beispiel mit Basis-Authentifizierung und mit JSON hinzufügen, wenn andere Leute als ich danach suchen. Übrigens funktioniert sowohl application/xml als auch text/xml , aber für json benötigen Sie application/json .

%Vor%

und JSON

%Vor%

und ich benutze diese in spec/requests ohne Webrat oder Capybara Browser Zeug.

    
oma 23.11.2010 15:29
quelle

Tags und Links