У меня была такая же проблема.Вы не можете использовать декларативные полномочия testhelper, такие как post_with, в функциональных тестах с devise.
Для функционального тестирования вы должны использовать devise testhelper, например sign_in и sign_out.Я написал помощник, который использует методы вспомогательного теста devise для функциональных тестов:
def test_with_user(user, &block)
begin
sign_in :user, users(user)
yield
ensure
sign_out :user
end
end
Этот помощник я использую следующим образом:
test_with_user(:max) do
get :new
assert_response :success
end
Надеюсь, что поможет.*