2015-04-21 24 views
0

我正在嘗試使用複選框更新我的索引視圖。邏輯工作正常,但我的控制器規格失敗,我不明白爲什麼。我想知道我的語法是否有問題。增量與我的功能測試一起工作,但與控制器規格無關。測試的相關部分如下:控制器規範未按預期增加計數

describe "PUT complete" do 
    it "it archives a diagnostic info report" do 
     diagnostic = FG.create(:diagnostic_info) 
     puts DiagnosticInfo.all.size 
     expect { 
     put :complete, :diagnostic_ids => [diagnostic.id] 
     }.to change(DiagnosticInfo.all, :size).by(-1) 
     response.should redirect_to(admin_diagnostics_path) 
    end 
    end 

失敗的測試我收到的是:

1) Admin::DiagnosticsController PUT complete it archives a diagnostic info report 
    Failure/Error: put :complete, :diagnostic_ids => [diagnostic.ids] 
    NoMethodError: 
     undefined method `ids' for #<DiagnosticInfo:0x0000000827c678> 
    # ./spec/controllers/admin/diagnostics_controller_spec.rb:53:in `block (4 levels) in <top (required)>' 
    # ./spec/controllers/admin/diagnostics_controller_spec.rb:52:in `block (3 levels) in <top (required)>' 
    # -e:1:in `<main>' 
+1

您能告訴我們您的DiagnosticsController嗎? –

+1

失敗錯誤提到'diagnostic.ids',你的代碼是'diagnostic.id' ...在某處出現錯誤。 – pierallard

回答

0

我修改了測試以下,因此是能夠得到它的工作。

describe "PUT complete" do 
    it "it archives a diagnostic info report" do 
     diagnostic = FG.create(:diagnostic_info) 
     expect { 
     put :complete, :diagnostic_ids => [diagnostic.id] 
     }.to change(DiagnosticInfo.all, :count).by(-1) 
     response.should redirect_to(admin_diagnostics_path) 
    end 
    end