Wie bekomme ich Cucumber / Capybara / Mechanize um gegen externe Nicht-Rails-Sites zu arbeiten?

8

Ich versuche BDD mit einem Google App Script zu erstellen. Ich verstehe, dass ich im Prinzip in der Lage sein sollte, eine Kombination aus Gurke, Capybara und Mechanize zu verwenden, um BDD auf einer externen Website zu betreiben. In diesem Fall versuche ich ein von mir erstelltes Google App Script zu testen.

Ich habe bisher den kompletten Code in diesem Projekt:

Ссылка

Allerdings bin ich derzeit auf diesen Fehler fest:

%Vor%

Ich weiß, dass ich Rack nicht verwenden möchte, und ich habe Foren und Stack-Überlauf gesucht, und bis jetzt meine bestmögliche Vermutung in meiner Gurken env-Datei:

%Vor%

Dieser SO-Beitrag ist relevant:

Wie man Gurken zum Testen verwendet -Ruby, Nicht-Rack APIs

Aber ich möchte Capybara verwenden, da ich eine HTML-Schnittstelle teste. Eine andere Alternative wird hier beschrieben:

Ссылка

und ich habe die Diskussion hier verfolgt:

Ссылка

Allerdings würde ich gerne verstehen, wie man die Rack-Sache einfach abstellt, und ich hatte gehofft, dass man eher Mechanisieren als das im obigen Blogbeitrag beschriebene Webkit verwenden könnte, da ich das Mechanisieren im Moment besser verstehe. p>

Wie auch immer, gibt es hier eine Best Practice, oder experimentiere ich einfach weiter mit Alternativen?

Was irgendwie verrückt macht ist, dass die Capybara Anweisungen hier: Ссылка sag das:

  

Wenn Sie Rails nicht verwenden, stellen Sie Capybara.app auf Ihre Rack App ein:

     

Capybara.app = MyRackApp

aber das erzeugt einen anderen Fehler "nicht initialisiertes konstantes Objekt :: MyRackApp (NameError)" und ich bin mir nicht sicher was MyRackApp sein soll oder wo ich es herausfinden soll (ein generelles Problem habe ich mit Ruby: - ​​/ ) sollte ich durch die Gurken- oder Capybara-Quelle arbeiten, um herauszufinden, was eine MyRackApp ist?

Jedenfalls dachte ich, ich würde das alles hier dokumentieren - alle Vorschläge, die ich sehr schätze. Ich würde gerne in der Lage sein, meine Google App-Skripte zu BDD zu machen ...

    
Sam Joseph 27.03.2013, 17:12
quelle

2 Antworten

10
  

Wenn Sie Rails nicht verwenden, stellen Sie Capybara.app auf Ihre Rack App ein:

Es sollte wie folgt gelesen werden:

  

Wenn es sich bei der Anwendung, die Sie testen, um eine Rack App, aber nicht um Rails handelt, stellen Sie Capybara.app auf Ihre Rack App ein:

Capybaras README war aktualisiert als Ergebnis dieser Frage.

Um Tests für externe Anwendungen durchzuführen, sollten Sie Capybara.app_host anstelle von Capybara.app .

setzen

Ich habe capybara-mechanize nicht verwendet, aber ich denke, dass es nicht der beste Treiber ist, um externe Tests durchzuführen Nicht-Rack-Anwendung. Mechanize erbt von Racktest und Racktest dient zum Testen von Apps mit Rack-Schnittstelle (meist Rails). Wenn Ihre App keine Rack-Schnittstelle hat, ist Capybara-Mechanize möglicherweise nicht die beste Wahl.

Ich empfehle Ihnen, das eingebaute Selen, Poltergeist , capybara-webkit oder terminus

Auch Ihr Code kann mit Capybara.configure :

etwas schöner geschrieben werden %Vor%     
Andrei Botalov 27.03.2013, 21:14
quelle
7

Von Jeroen van Dijk zu dieser Google Group-Nachricht , einfach Stellen Sie Ihr Capybara.app auf etwas ein, das als wahr bewertet wird. d. h.

%Vor%

Solange Capybara.run_server auf false gesetzt ist, wird niemals versucht, die App zu starten. Es funktioniert soweit für mich.

    
ottobar 24.06.2013 19:42
quelle