Tri des tests avec Concombre et Capybara

Existe-t-il un moyen de tester le tri d'une liste avec Concombre et Capybara. Le tri est fait avec le client avec javascript.

Je pensais à quelque chose comme suit:

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

Malheureusement, je ne sais pas comment aborder la construction des étapes.

Merci pour l'aide!

C'est une bonne idée de séparer les histoires que vous testez (ce que vous souhaitez rapprocher de l'anglais clair) et la mise en œuvre réelle du test (caché dans les étapes).

Il existe quelques façons d'aborder cela, selon ce que vous voulez tester. Dans le premier cas, le test de cuke est très lisible, et il se résume à la mise en œuvre correcte des définitions des étapes:

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

Dans ce cas, vous devrez définir ce que cela signifie d'avoir une liste (peut l'affecter à @list dans une étape def si vous voulez), puis ce que cela signifie de voir la liste en ordre trié (ici vous pouvez passer Un regex qui vous assure de voir l'élément 1 avant l'article 2, etc.)

Alternativement, si vous aimez être plus détaillé dans les tests de cuke, vous pouvez faire quelque chose comme:

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

Qui suppose que la liste est déjà remplie.

Selon l'emplacement de la liste, vous devrez peut-être utiliser un paramètre within .

Rappelez-vous que le concombre est idéal pour les tests fonctionnels et d'intégration, mais n'est probablement pas le bon outil pour tester le type d'unité (en regardant tous les cas de bord). Pour tester le tri à un niveau de test unitaire, je recommanderais fortement l'utilisation de QUnit. Étant donné que les tests QUnit sont des pages statiques, essayez cette astuce pour exécuter les tests dans le cadre de Capybara:

 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']"