1
我有以下如何比較Rspec中的分配?
it 'should assign a new profile to user' do
get :new
assigns(:user_profile).should ==(Profile.new)
end
但它不工作。我試過'eql?'和'平等'?分別。如何比較它以便了解@user_profile的內容是否爲Profile.new?
我曾經做過一個解決方法,做一個指定變量的.class,檢查它是否是Profile,但我想停止這些不好的做法。
謝謝。
令人敬畏的兄弟,這正是我想要的! ;-) – thiagofm
事實上,沒有什麼特別的理由可以使'profile'的值成爲實際的'Profile'對象;它可以是任何東西。例如,'let(:profile){「一個新的配置文件」}'不會真的改變測試的功能。但沒關係,因爲在控制器測試中,你不想測試'Profile :: new'本身的功能。但是,如果在控制器操作的'@ user_profile'上調用其他方法,這可能會導致消息期望錯誤。 (然後另一個選項是'let(:profile){mock('Profile')。as_null_object}'。) – gregates