我需要模擬如下:如何模擬已模擬對象的實例方法?
Class User
def facebook
#returns an instance of a facebook gem
end
end
所以在我的用戶測試,訪問用戶的Facebook信息,我需要調用user.facebook.me.info
檢索其信息。如果我想嘲笑這個,我目前使用下列內容:
@user = Factory(:user)
facebook = mock()
me = mock()
me.expects(:info).returns({"name" => "John Doe"})
facebook.expects(:me).returns(me)
@user.expects(:facebook).returns(facebook)
assert_equal "John Doe", @user.facebook.me.info["name"]
這工作,但似乎有點笨拙,有沒有更好的方式來做到這一點?
[編輯]我用摩卡作爲嘲諷的框架
你正在使用哪個模擬框架? – Reactormonk 2010-10-24 14:56:39
我正在使用摩卡。 – pjaspers 2010-10-24 16:06:51