2015-08-30 3 views
2

Как мне проверить методы, вызывающие метод вложенных свойств? Что-то вроде:Как протестировать вызов метода вложенных свойств?

PropertyA.PropertyB.PropertyC.DoSomething(); 

Должен ли я создать макет для каждого свойства и проверить, если метод DoSomething() была вызвана? Похоже, много тестового кода для простого вызова метода. Есть ли способ лучше?

+1

Этот запах называется «цепочкой сообщений». Лучше рефакторинг, выясняя, какие функции вы пытаетесь захватить и поместив в отдельный метод (или класс): https://sourcemaking.com/refactoring/message-chains – jessehouwing

+0

Я сделал несколько обзоров, и мне кажется, что я должен принять ваш ответ. Это Закон о Деметре, и его следует избегать. Благодаря! –

ответ

0

После небольшого исследования и замечаний @jessehouwing выяснилось, что эта практика является запахом кода, называемым «цепочкой сообщений», и ее следует избегать из-за нарушения закона Деметры. Больше информации: http://haacked.com/archive/2009/07/14/law-of-demeter-dot-counting.aspx/

2

Вы правы. Вы должны настроить mock для всех объектов, которые вам нужны. Конфигурация зависит от макета, который вы решите использовать.

Смежные вопросы