如果这是一个愚蠢的问题,我很嘲笑。
我可以使用mocha来执行以下操作:
person.expects(:first_name).returns('David')
如何模拟嵌套对象?
假设我有一个属于某个人的产品,我想获得该人的名字。
在我的应用程序中,我可能会这样做:
product.person.first_name
如何使用模拟获得相同的结果?
答案 0 :(得分:1)
您需要先定义一个mock(),然后在调用产品上的人时将其返回
person = mock(:first_name => 'david')
product.expects(:person).return(person)
product.person #=> mockObject
product.person.first_name #=> david
答案 1 :(得分:1)
作为shingara答案的替代方案,您可以使用mocha的any_instance
方法“来检测对类的任何实例的调用”。
Person.any_instance.expects(:first_name).returns('david')
记录在:
http://mocha.rubyforge.org/classes/Mocha/ClassMethods.html#M000001