RSpec - как заглушить метод контроллера - PullRequest
4 голосов
/ 09 ноября 2011

У меня есть контроллер с особой аутентификацией, поскольку это действительно API, доступный для конкретной удаленной системы.

В RSpec (2.7) я хочу обойти эту аутентификацию, но не могучтобы это заработало.Из того, что я прочитал, я должен был сделать что-то вроде этого:

controller.stub!(:restrict_soa_access).and_return(true)

Но если я это сделаю, я просто получу:

spec/controllers/soa/user_controller_spec.rb:42: undefined method `stub!'
for #<RSpec::Core::Hooks::AfterHooks:0xb673a8dc> (NoMethodError)

В ответ на комментарии я такжепопытался использовать Soa::UserController.stub!, который дает ту же ошибку, а также @controller.stub!, когда я получаю неопределенный метод для nil: NilClass.

Я не заглушаю другие вещи.Что-то нужно сделать, чтобы включить заглушку, или мой код заглушки просто неправильный?

1 Ответ

3 голосов
/ 09 ноября 2011

У меня была похожая проблема, я решил ее с помощью следующих требований:

require 'rspec/mocks'
require 'rspec/mocks/spec_methods'
require 'rspec/mocks/standalone'

Не могли бы вы сообщить, работает ли это для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...