我想使用should_receive
作爲RSpec規範的主題。換句話說,我不想測試should ==
,而是測試另一個類接收方法調用。RSpec:should_receive作爲指定的東西
我想什麼寫的是一樣的東西:
describe '#methodOne' do
subject { ClassTwo }
it { should_receive(:methodTwo) }
ClassOne.methodOne
end
這可能嗎?
我想使用should_receive
作爲RSpec規範的主題。換句話說,我不想測試should ==
,而是測試另一個類接收方法調用。RSpec:should_receive作爲指定的東西
我想什麼寫的是一樣的東西:
describe '#methodOne' do
subject { ClassTwo }
it { should_receive(:methodTwo) }
ClassOne.methodOne
end
這可能嗎?
因此,這裏是我是如何做的:
describe "#methodOne" do
it "calls the appropriate method" do
ClassTwo.should_receive(:methodTwo)
ClassOne.methodOne
end
end
這精美的作品
我會用在它的實例變量形式的主題:
@subject.should_receive(:methodTwo)
有很多方法,你可以扭曲的RSpec做這樣的事情,但它不使用RSpec的它是如何打算。 should_receive
設置了一個模擬的期望,即一個方法將被調用。對於單線程it
語法沒有意義。
我建議您從基本的describe
/it
結構開始,只有在重複時重構更高級的結構(主題,單行it
)。
我怎麼能重寫我的代碼,以便它測試'should_receive',以RSpec的目的? – amindfv 2012-07-10 14:32:48
這並不爲我工作。它跳過了規範,就像沒有任何測試。 – amindfv 2012-07-10 14:47:01
是的,你應該嘲笑你的主題類,並使用'should_receive',因爲這是RSpec :: Mocks庫的一部分。如果你需要的話,這裏是一個不錯的教程。 – xiy 2012-07-10 14:59:37