Я не знаком с вайтиром, но я представляю следующие шаги:
Given I have signed up
When I confirm my account
Then my account should be confirmed
Вы можете либо отслеживать ссылку, по которой вы ожидаете их попадания, и фактически проверять попадание по этой ссылке, чтобы убедиться, что контроллер затем устанавливает пользователя как подтвержденное:
When /I confirm my account / do
BROWSER.goto("the_url_from_the_email")
# note that if you need to visit this link and click a button
# or something you will need to code that part as well
end
В этих шагах будет использован код регистрации и подтверждения. Я думаю, что если вы захотите, то либо воспользуетесь ими, чтобы составить шаг «Учитывая, что я вошел в систему с подтвержденной учетной записью» в качестве предварительного условия для других тестов, либо просто используйте этот же шаг, чтобы вернуть консервированную учетную запись.
Не уверен, что это действительно отвечает на ваш первоначальный вопрос, но, как уже упоминалось, вы на самом деле не сказали, что на самом деле идет не так. Я бы предположил, что User.last.confirmed! не сохраняет или не сохраняет ожидаемую запись.