2015-04-06 56 views
0

這會每次都返回一個錯誤的測試。我也使用了be_an_instance_of匹配器。爲什麼我的rspec控制器不能測試對象等價?

def new 
    @partner_setting = PartnerSetting.new 

    respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @partner_setting } 
end 


it 'assigns a valid partner settings object to @partner_setting' do 
    expect(assigns(:partner_setting)).to be_an PartnerSetting 
end 
+2

我假設你確實在某處調用了控制器('get:new'),不是嗎? (順便說一下,你應該在這裏使用'be_a'匹配器) – BroiSatse

+0

我是一個總的derp!謝謝你的幫助! –

回答

1

您需要告訴您的測試轉到控制器操作。如何才能知道要測試什麼?所以在你的期望之前,你需要添加。

get :new 
+0

謝謝。謝謝! –

1

我沒有看到一個

get :new 
在你的代碼

。您必須先調用控制器操作。

+0

我是個白癡。謝謝! –

0

在一個側面說明:

it 'the action assigns a non nil and valid Object to @partner_setting' do 
    expect(assigns(:partner_setting)).should_not be_nil 
    expect(assigns(:partner_setting)).to be_an Object 
end 

WORKS!即使獲得#新不被稱爲!

默認操作是重定向到登錄頁面!