2012-07-10 33 views
0

我想使用should_receive作爲RSpec規範的主題。換句話說,我不想測試should ==,而是測試另一個類接收方法調用。RSpec:should_receive作爲指定的東西

我想什麼寫的是一樣的東西:

describe '#methodOne' do 

    subject { ClassTwo } 

    it { should_receive(:methodTwo) } 

    ClassOne.methodOne 

end 

這可能嗎?

回答

1

因此,這裏是我是如何做的:

describe "#methodOne" do 

    it "calls the appropriate method" do 

    ClassTwo.should_receive(:methodTwo) 
    ClassOne.methodOne 

    end 

end 

這精美的作品

-1

我會用在它的實例變量形式的主題:

@subject.should_receive(:methodTwo) 
+0

這並不爲我工作。它跳過了規範,就像沒有任何測試。 – amindfv 2012-07-10 14:47:01

+0

是的,你應該嘲笑你的主題類,並使用'should_receive',因爲這是RSpec :: Mocks庫的一部分。如果你需要的話,這裏是一個不錯的教程。 – xiy 2012-07-10 14:59:37

3

有很多方法,你可以扭曲的R​​Spec做這樣的事情,但它不使用RSpec的它是如何打算。 should_receive設置了一個模擬的期望,即一個方法將被調用。對於單線程it語法沒有意義。

我建議您從基本的describe/it結構開始,只有在重複時重構更高級的結構(主題,單行it)。

+0

我怎麼能重寫我的代碼,以便它測試'should_receive',以RSpec的目的? – amindfv 2012-07-10 14:32:48