摩卡和嵌套对象(mocha and nested objects)

2019-10-20 03:42发布

如果借口这是一个愚蠢的问题,我是新来的嘲讽。

我可以用摩卡做的事情,如:

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

我怎么能嘲笑一个嵌套的对象吗?

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

在我的应用我可以做这样的:

product.person.first_name

我将如何得到使用模拟同样的结果?

Answer 1:

作为替代shingara的回答,您可以用摩卡的any_instance法“这将检测调用任何类的实例”。

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

它的记录在:
http://mocha.rubyforge.org/classes/Mocha/ClassMethods.html#M000001



Answer 2:

你需要之前定义一个模拟(),并返回它,当你打电话的人对产品


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

product.person #=> mockObject
product.person.first_name #=> david


文章来源: mocha and nested objects