我需要模拟以下内容:
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"]
这可行,但似乎有点笨拙,有没有更好的方法来做到这一点?
[编辑] 我使用 mocha 作为模拟框架