У меня есть следующий класс:Как тупиковые аксессоры с RSpec
class TwitterService
def initialize
@twitter ||= Twitter
end
def get_short_url_length
@twitter.configuration.short_url_length
end
end
И следующая спецификация:
describe TwitterService do
before(:each) do
Twitter::Configuration.any_instance.stub(:short_url_length).and_return(12)
end
it 'does not send short_url_length request to Twitter' do
twitter = TwitterService.new
twitter.get_short_url_length.should == 12
end
end
Проблема у меня есть, что #short_url_length
на Twitter::Configuration
не получает погасила. Я делаю это неправильно? Все, что я пытаюсь достичь, - это запустить мой метод TwitterService#get_short_url_length
без запуска библиотеки Twitter, что вызывает запрос API Twitter, что приводит к сбою.
Я использую следующие инструменты:
- Rails 3.2.12
- Rspec 2.13.0
- Twitter 4.6.2
Любая помощь очень ценится!
Когда данные аутентификации установлены, @ twitter.configuration является экземпляром Twitter :: Configuration. В консоли Rails, если я запустил 'Twitter.configuration', он фактически аутентифицируется с помощью Twitter сразу. Я думаю, именно поэтому я не могу наложить на него метод. Я также не могу передать конфигурацию в качестве параметра, потому что это часть модуля Twitter. – sudoash