Вы действительно можете смоделировать другие методы в тесте RSpec.Если два упомянутых вами метода находятся внутри класса, Foo
, вы должны сделать что-то вроде этого, чтобы убедиться, что вызывается some_other_method
:
subject{ Foo.new }
it "should do whatever you're testing" do
subject.should_receive(:some_other_method).and_return(5)
subject.some_method
end
Если вам не нужно утверждать, что этобыл вызван, просто подтвердите результаты some_method
, вы можете сделать что-то вроде этого:
subject{ Foo.new }
it "should do whatever you're testing" do
subject.stub(:some_other_method).and_return(5)
subject.some_method.should eq(6)
end
В приведенных выше примерах предполагается, что вы используете RSpec 2. Если вы используете RSpec 1, вы 'Вам нужно будет использовать stubs
вместо stub
.
Если ваши методы определены вне класса, они действительно определены в классе Object
, поэтому просто используйте Object
вместо Foo
в приведенных выше примерах.
Для получения дополнительной информации о макетах в RSpec проверьте http://relishapp.com/rspec/rspec-mocks для RSpec 2 или http://rspec.info/documentation/mocks/ для RSpec 1.