2010-12-10 5 views
3

Есть ли способ проверить сортировку списка с огурцом и Capybara. Сортировка выполняется на стороне клиента с помощью javascript.Проверка сортировки с огурцом и Capybara

я что-то вдоль линий мышления:

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

К сожалению, я не имею ни малейшего представления о том, как подойти к строить шаги.

Спасибо за помощь!

+4

* «Тест сортировки с огурцами и Капибара» * Звуки, как открытие плохой шуткой ... ;-) –

ответ

7

Это хорошая идея, чтобы разделить истории, которые вы тестируете (которые вы хотите приблизиться к простому английскому), и фактическую реализацию тестирования (которое скрыто в step_definitions).

Есть несколько способов решить эту проблему, в зависимости от того, что вы хотите проверить. В первом случае, огурчик тест очень читаемый, и она сводится к правильной реализации определения шага:

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

В этом случае, вы должны определить, что значит иметь список (можно назначить это для @list в шаге def, если вы хотите), а затем, что значит видеть список в отсортированном порядке (здесь вы можете передать регулярное выражение, которое гарантирует, что вы увидите пункт 1 перед пунктом 2 и т. д.)

Альтернативно , если вам нравится быть более подробным в тестах cuke, вы можете сделать что-то вроде:

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

, который предполагает, что список уже заполнен.

В зависимости от того, где находится список, вам, возможно, придется использовать параметр области within.

Помните, что огурец отлично подходит для функционального и интеграционного тестирования, но, вероятно, он не является подходящим инструментом для модульного тестирования сортировки (смотря на все краевые случаи). Чтобы проверить сортировку на уровне единичного теста, я настоятельно рекомендую использовать QUnit. Поскольку QUnit тесты статические страницы, попробуйте этот трюк для выполнения тестов в рамках водосвинки:

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

regex - почему я не подумал об этом? –

Смежные вопросы