请原谅,如果这是一个愚蠢的问题,我是嘲笑的新手。

我能够使用摩卡咖啡做这样的事情:

person.expects(:first_name).returns('David')

如何模拟嵌套对象?

说我有一个属于一个人的产品,我想获得那个人的名字。

在我的应用程序中,我可能会这样做:

product.person.first_name

我如何使用模拟获得相同的结果?

有帮助吗?

解决方案

作为Shingara答案的替代方案,您可以使用Mocha的 any_instance 方法“将检测到类的任何实例的调用”。

Person.any_instance.expects(:first_name).returns('david')

记录在以下内容:
http://mocha.rubyforge.org/classes/mocha/classmethods.html#m000001

其他提示

您需要定义一个模拟()并在您打电话给Product的人时退还


person = mock(:first_name => 'david')
product.expects(:person).return(person)

product.person #=> mockObject
product.person.first_name #=> david
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top