Как смоделировать метод экземпляра уже смоделированного объекта?
Мне нужно издеваться над следующим:
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"]
Это работает, но кажется немного громоздким, есть ли лучший способ сделать это?
[править] Я использую мокко как насмешливый фреймворк