Шаг потерпит неудачу только в том случае, если он сгенерирует исключение. Согласно соглашению об именах, метод has_content?
возвращает значение false, если содержимое отсутствует на странице, и, следовательно, не выдает исключение. Это заставит ваш шаг «пройти», когда вы намереваетесь потерпеть неудачу.
Вам нужно сделать утверждение с какой-то библиотекой модульного тестирования (мой Ruby немного ржавый)
Then("I should see {string}") do |string|
page.has_content?(string).should_be true
end
Вам понадобится что-то вроде RSpec, чтобы получить доступ к библиотеке, позволяющей делать утверждения.