2014-10-08 55 views
0

我知道我可以嘲笑的對象如下:如何模擬Rails中的關聯對象?

Account.any_instance.expects(:type).returns("premium") 

我記得聽到這被認爲是一個貧窮的做法。我喜歡做類似

user = users(:bob) 
user.account.expects(:type).returns("premium") 

但這似乎並沒有模擬正確的對象。有沒有比在班上使用any_instance電話更好的解決方案?

編輯:那我收到錯誤消息是

not all expectations were satisfied 
unsatisfied expectations: 
- expected exactly once, not yet invoked: #<Account:0x5f9f8f8>.type(any_parameters) 
+0

我認爲如果你展示整個方法和整個測試,情況會更好。現在它只能是一個猜測的問題。 – sebkkom 2014-10-08 14:56:44

回答

0

我仍然在尋找我的嘲笑的方式,但你嘗試過這樣的:

account = user.account 
account.expects(:type).returns("premium") 

這將有助於有你的測試背景知道你想嘲笑哪個對象。

+0

剛剛嘗試過,謝謝。我收到了同樣的錯誤消息,我會稍微添加到我的問題中。 – sakovias 2014-10-08 14:43:32

相關問題