可以使用默認屬性值創建嗎?我不確定這個問題的真正含義。兩種可能性:可以使用默認屬性值創建Mocks
如果對象
t=Movie.find(10)
,然後如果我說m=mock(t)
,並米自動繼承T的所有屬性值?有一種方法來創建默認的屬性,我們可以每次克隆它,當我們使用它沒有去通系列存根
"initialize"
這些屬性模仿對象?
感謝您的幫助。
可以使用默認屬性值創建嗎?我不確定這個問題的真正含義。兩種可能性:可以使用默認屬性值創建Mocks
如果對象t=Movie.find(10)
,然後如果我說m=mock(t)
,並米自動繼承T的所有屬性值?
有一種方法來創建默認的屬性,我們可以每次克隆它,當我們使用它沒有去通系列存根"initialize"
這些屬性模仿對象?
感謝您的幫助。
說到1)它沒有意義。如果在測試中您可以通過Movie.find(10)
訪問實際對象,則不必使用模擬。假設你正在使用rspec_mocks
,你打算寫一個說法,具體的方法被調用,你可以簡單地寫:
t = Movie.find(10)
t.should_receive(:foo)
還檢查了這一點:https://www.relishapp.com/rspec/rspec-rails/v/2-11/docs/mocks/mock-model 這https://www.relishapp.com/rspec/rspec-rails/v/2-11/docs/mocks/stub-model
非常有用的在規範中嘲弄AR/Mongoid和其他模型的助手。
隨着factory_girl
你可以設置這個模擬的屬性,例如movie = mock_model(Movie, FactoryGirl.attributes_for(:move))