2011-07-02 31 views
0

我想这可能是这样的:RSpec控制器测试:如何检查@ organization.destroy是否被调用?

let(:organization) { mock_model(Organization).as_null_object } 

before(:each) do 
    Organization.stub(:find).and_return(organization) 
end 

it "calls the destroy action on @organization" do 
    assigns[:organization].should_receive("destroy") 
    post :destroy, :id => organization.id 
end 

..但我得到一个“不能修改冻结的对象”错误。

回答

0

这是我会怎么写规格:

describe 'Oragnization#destroy' do 
    let(:organization) { mock_model(Organization, :id => 1, :destroy => true) } 

    subject { post :destroy, :id => organization.id } 

    it { should be_successful } 
end 
+1

但什么是剩余的测试,如果他消除了期待? – apneadiving

+0

是的 - 我不明白这是如何明确测试销毁行动被称为...或者这只是常见的方式吗? – dmonopoly

+0

我刚更新了我的答案 – solnic