2012-01-17 78 views
0

我有与我建立的控制器嵌套形式测试相关模型是否已经建立?

def edit 
    @trans_op = TransportOperator.find params[:id] 
    @trans_op.coverages.build 
end 

我如何可以测试该@trans_op.coverages.build线是否存在关联的模型?

describe "GET edit" do 
    let!(:trans_op){ Factory :trans_op } 

    it "should be a success" do 
     get :edit, id: trans_op 
     response.should be_success 
    end 

    # this test needs to be fixed 
    it "should build an empty coverage if there are none" do 
     get :edit, id: trans_op 
     # ??? 
    end 
    end 

我试图嘲弄:

it "should build an empty coverage if there are none" do 
    trans_op.coverages.should_receive(:build) 
    get :edit, id: trans_op 
end 

1) TransportOperatorsController GET edit should add an empty coverage if there are none 
    Failure/Error: Unable to find matching line from backtrace 
    ([]).build(any args) 
     expected: 1 time 
     received: 0 times 

和计数

it "should build an empty coverage if there are none" do 
    get :edit, id: trans_op 
    trans_op.coverages.count.should == 1 
end 

失败:

1) TransportOperatorsController GET edit should add an empty coverage if there are none 
    Failure/Error: trans_op.coverages.count.should == 1 
    expected: 1 
      got: 0 (using ==) 

回答