мокко и вложенные объекты - PullRequest
1 голос
/ 04 марта 2010

Извините, если это глупый вопрос, я новичок в насмешках.

Я могу использовать мокко для таких вещей, как:

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

Как я могу издеваться над вложенным объектом?

Скажем, у меня есть Продукт, который принадлежит Лицу, и я хочу получить имя этого человека.

В моем приложении я мог бы сделать это так:

product.person.first_name

Как бы я получил тот же результат, используя макет?

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

вам нужно определить mock () и вернуть его, когда вы звоните человеку по продукту


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

product.person #=> mockObject
product.person.first_name #=> david
1 голос
/ 04 марта 2010

в качестве альтернативы ответу Шингары, вы можете использовать метод mocha any_instance, который "обнаружит вызовы любого экземпляра класса".

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

это задокументировано по адресу:
http://mocha.rubyforge.org/classes/Mocha/ClassMethods.html#M000001

...