Это хорошая идея, чтобы разделить истории, которые вы тестируете (которые вы хотите приблизиться к простому английскому), и фактическую реализацию тестирования (которое скрыто в 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']"
* «Тест сортировки с огурцами и Капибара» * Звуки, как открытие плохой шуткой ... ;-) –