2009-05-18 8 views
0

Я хотел бы написать RSpec для моего контроллера, используя RR.Rails RR Framework: несколько вызовов для instance_of

Я написал следующий код:

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 

describe RegistrationController do 

    it "should work" do 
     #deploy and approve are member functions 
     stub.instance_of(Registration).approve { true } 
     stub.instance_of(Registration).deploy { true } 
     post :register 
    end 
end 

Однако RR окурки только развернуть метод, когда до сих пор называют оригинальным утвердить метод.

Какой синтаксис следует использовать для блокировки обоих вызовов метода для всех экземпляров класса регистрации?

UPDATE: Я achivied желаемый результат с [Mocha]

Registration.any_instance.stubs(:deploy).returns(true) 
Registration.any_instance.stubs(:approve).returns(true) 

ответ

-1

, насколько я знаю, издевается RSpec не позволяют сделать это. Вы уверены, что вам нужно заглушить все экземпляры? Я обычно следую этой схеме:

describe RegistrationController do 
    before(:each) do 
     @registration = mock_model(Registration, :approve => true, :deploy => true) 
     Registration.stub!(:find => @registration) 
     # now each call to Registration.find will return my mocked object 
    end 

    it "should work" do 
     post :register 
     reponse.should be_success 
    end 

    it "should call approve" do 
     @registration.should_receive(:approve).once.and_return(true) 
     post :register 
    end 

    # etc 
end 

Путем установки метода поиска класса управления, которым вы управляете, какой объект возвращается в спецификации.

+0

спасибо это было полезно для меня –

+1

Речь идет о RR окурков, а не RSpec окурков. – Peeja

+1

ahh - Я пропустил это - должен учиться читать лучше – jcfischer

 Смежные вопросы

  • Нет связанных вопросов^_^