Как обойти политики при тестировании с помощью гиперстека - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь выполнить некоторые модульные тесты компонентов с помощью гиперстека и гиперспека.

Проблема в том, что у меня есть политики, блокирующие запуск теста?

Например, у меня есть политикачто только пользователь может просматривать свои собственные заказы.

Но если я действительно не усложню тестирование, войдя в систему пользователя (тогда это на самом деле не модульный тест), я не вижу, как переопределить политику.

Я попытался ввести другую политику в before(:all), но rspec это не понравилось.

1 Ответ

1 голос
/ 12 апреля 2019

Я не знаком с rspec, но вы должны быть в состоянии смоделировать пользовательский класс, притворившись, что он вошел в систему (или смоделировать любой объект, сообщающий о зарегистрированном статусе).

Например, есливы использовали rr, вы могли бы сделать что-то вроде

any_instance_of(User) do |klass|
  stub(klass).logged_in? { true }
end

копаться в документации rspec, похоже, вы могли бы сделать что-то вроде этого.

allow_any_instance_of(User).to receive(:logged_in?).and_return(true)
...