Frage

Gibt es eine Möglichkeit zum Test einer Liste mit Gurke und Capybara Sortierung. Die Sortierung erfolgt Client-Seite mit Javascript.

Ich dachte, etwas entlang der Linien von:

Then I should see "first element" and then I should see "second element"

Leider habe ich keine Ahnung, wie die Schritte Gebäude zu nähern.

Danke für die Hilfe!

War es hilfreich?

Lösung

Es ist eine gute Idee, um die Geschichten zu trennen, dass Sie testen (die Sie in der Nähe einfaches Englisch erhalten mögen) und die tatsächliche Durchführung des Tests (die in der step_definitions verborgen ist).

Es gibt ein paar Möglichkeiten, dies zu bewältigen, je nachdem, was Sie testen möchten. Im ersten Fall ist der cuke Test sehr gut lesbar, und es läuft richtig auf der Umsetzung den Schritt Begriffsbestimmungen:

Given that I am on page xyz
And I have a list
Then I should see the list in sorted order

In diesem Fall müssen Sie müssen definieren, was es bedeutet, eine Liste zu haben (es kann zu @liste in einem Schritt zuweisen def wenn Sie möchten), und dann, was bedeutet, dass es die Liste in sortierter Reihenfolge zu sehen (hier Sie können einen regulären Ausdruck übergeben, die sicherstellt Sie Artikel 1 vor dem Artikel zu sehen 2, usw.)

Wenn Sie alternativ wie ausführlicher in den cuke Tests sind, können Sie so etwas wie wie tun:

Given that I am on page xyz
Then I should see /item1.*item2.*item3/

, die die Liste geht davon ist bereits ausgefüllt.

Je nachdem, wo die Liste ist, können Sie einen within Umfang param verwenden.

Beachten Sie, dass Gurke groß ist für Funktions- und Integrationstests, aber wahrscheinlich nicht das richtige Werkzeug für Einheit Testen der Art (an allen Grenzfälle suchen). die Sortierung in einer Unit-Test-Ebene zu testen, würde ich sehr empfehlen QUnit verwenden. Da QUnit Tests statische Seiten sind, versuchen Sie diesen Trick für die Tests im Rahmen von Capybara ausgeführt wird:

Given I am on "/test/path/to/qunit/tests"
Then I should see "Whatever Title You have Assigned"
And I should see "0" within "//p[@id='qunit-testresult']/span/[@class='failed']"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top