Макет внешнего класса в спецификации контроллера Rails - PullRequest
2 голосов
/ 07 января 2012

У меня есть приложение Rails 3, которое я тестирую с помощью RSpec.У меня есть контроллер, использующий внешний класс MustMock в качестве

class FooController < ApplicationController
  def myaction
    mockme = MustMock.new
    @foobar = mockme.do_something
  end
end

Как мне лучше всего высмеивать экземпляр MustMock в моей спецификации контроллера?

Ответы [ 2 ]

5 голосов
/ 07 января 2012
describe FooController do
  specify :myaction do
    MustMock.should_receive(:new)
            .and_return(stub :do_something => :something)
    get :myaction
    assigns[:foobar].should == :something
  end
end
2 голосов
/ 07 января 2012

Вы можете попробовать это:

it "does something in myaction" do
    my_stub = stub()
    my_stub.should_receive(:do_something).once.and_return(:foobar)
    MustMock.stub(:new => my_stub)
    get :myaction
    response.should be_success
end
...