Возможно, вам не удастся использовать наброски сценария , чтобы сохранить повторение в вашем файле возможностей, но имейте в виду, что он расширится до очень большого числа фактически запущенных сценариев, поэтому он будет быть медленнее, чем вы ожидаете. Что-то вроде этого, вероятно, должно работать, предполагая 5 книг на страницу. Я оставлю определения шагов в качестве упражнения, но они должны быть довольно простыми.
Я должен также упомянуть, что я на самом деле не запускал это, поэтому примите любые синтаксические ошибки с крошкой соли.
Feature: Book Browsing Pagination
Scenario: No results
Given I have 0 books
When I view all books
Then I should see "No results" on the page
Scenario: Some results
Given I have 3 books
When I view all books
Then I should see "Book 1"
And I should see "Book 2"
And I should see "Book 3"
Scenario: Page links
Given I have <count> books
When I view all books from page <page>
Then I should see a link to page <target page>
Examples:
| count | page | target page |
| 8 | 1 | 2 |
| 8 | 2 | 1 |
| 13 | 1 | 2 |
| 13 | 1 | 3 |
| 13 | 2 | 1 |
| 13 | 2 | 3 |
| 13 | 3 | 1 |
| 13 | 3 | 2 |
Scenario: Page links for current page
Given I have <count> books
When I view all books from page <page>
Then I should see a disabled pagination link to page <page>
Examples:
| count | page |
| 8 | 1 |
| 8 | 2 |
| 13 | 1 |
| 13 | 2 |
| 13 | 3 |
Scenario: Next Page links
Given I have <count> books
When I view all books from page <page>
Then I should see a link "Next Page"
When I click "Next Page"
Then I should be on page <next page> # assert against query params maybe?
# alternately, to keep page requests down, one could use something like:
# Then I should see a link "Next Page" going to "?p=<next page>"
Examples:
| count | page | next page |
| 8 | 1 | 2 |
| 13 | 1 | 2 |
| 13 | 2 | 3 |
Scenario: Next Page links on last page
Given I have <count> books
When I view all books from page <page>
Then I should see a disabled pagination link "Next Page"
Examples:
| count | page |
| 8 | 2 |
| 13 | 3 |
Подобные сценарии можно использовать для проверки состояния ссылки «Предыдущий / Первый / Последний», как и для «Далее», и вы можете добавить несколько дополнительных щелчков к сценарию «Ссылки на страницу», аналогично сценарию «Следующая страница», если хотите. Возможно, вы также захотите добавить дополнительные примеры, чтобы проверить, что ваша нумерация страниц точно равна 5, поскольку выбранные примеры также прошли бы, если бы разбивка на страницы составляла 6 на страницу. Зависит от того, каковы ваши цели проверки функциональности нумерации страниц.
Если в конечном итоге вы решите что-то, кроме will_paginate, то единственное, на что вам нужно обратить внимание, это несколько шагов (например, отключенные пагинации).
И, как вы упомянули, прося ссылки, это также может стать хорошим постом в блоге;)