Как проверить коллекцию интерфейса использования с Носорогом. Насмешки

В моем интерфейсе

public IMyListInterface : IList { void Foo(); }

как я могу легко создать пример для тестирования классов то использование IMyListInterface.

Currently I'm using GenerateStub() and delegating the needed methods/properties to a List list but it's tedious.

В настоящее время заставлять следующий код при тесте работать

foreach (var match in matchList)

Я делаю следующее в своем испытательном классе

IList baseList = new List();
IMyListInterface matchList = MockRepository.GenerateStub();

matchList.Stub(m => m.GetEnumerator()).Return(null).WhenCalled(i => i.ReturnValue = baseList.GetEnumerator());

Есть ли лучший путь?

0
nl ja de
Почему не только используют Носорога. Дразнит встроенный метод "Окурка" - т.е. myListStub. Окурок (f => f. Фу ())? Могли вы показывать некоторый код как you' ре, в настоящее время используя Носорога. Насмешки?
добавлено автор PatrickSteele, источник
Let' s предпринимают шаги назад. Почему вы хотите дразнить список? Обычно (не всегда), насмешка используется, чтобы погасить всю зависимость. Есть ли некоторое поведение списка, который вы хотите погасить - но сохранять остальную часть функциональности тем же самым? Больше информации помогло бы.
добавлено автор PatrickSteele, источник
Let' s предпринимают шаги назад. Почему вы хотите дразнить список? Обычно (не всегда), насмешка используется, чтобы погасить всю зависимость. Есть ли некоторое поведение списка, который вы хотите погасить - но сохранять остальную часть функциональности тем же самым? Больше информации помогло бы.
добавлено автор PatrickSteele, источник
Почему вы даже гасите внедрение IMyListInterface? Если у этого просто есть поведение списка (добавляют/удаляют), просто используют конкретную реализацию - никакая потребность погасить его (насколько я могу сказать - вы все еще haven' t обеспеченный код, чтобы показать то, что это - you' ре, пытающееся проверить).
добавлено автор PatrickSteele, источник
Почему вы даже гасите внедрение IMyListInterface? Если у этого просто есть поведение списка (добавляют/удаляют), просто используют конкретную реализацию - никакая потребность погасить его (насколько я могу сказать - вы все еще haven' t обеспеченный код, чтобы показать то, что это - you' ре, пытающееся проверить).
добавлено автор PatrickSteele, источник
Окурок для Фу хорошо работает, но моделирование поведения списка утомительно, поскольку я должен погасить, Добавляют, RemoveAt, рассчитывают и т.д. Я задавался вопросом, был ли способ заставить Насмешки Носорога позволять мне говорить ему использовать Список непосредственно.
добавлено автор sixeyes, источник
Окурок для Фу хорошо работает, но моделирование поведения списка утомительно, поскольку я должен погасить, Добавляют, RemoveAt, рассчитывают и т.д. Я задавался вопросом, был ли способ заставить Насмешки Носорога позволять мне говорить ему использовать Список непосредственно.
добавлено автор sixeyes, источник
Я don' t хотят дразнить список. Но пункт, я хочу проверить выставки, перечисляет поведение. Идеально я хочу просто иметь список (например, новый Список ()), но couldn' t видят, как я могу получить это. У меня есть переменная под названием MatchList в моем классе, проверяемом типа IMyListInterface, и я должен получить поведение списка от той переменной. Я пытался бросить Список в IMyListInterface, но это бросило исключение.
добавлено автор sixeyes, источник
Хорошо. I' ll пытаются объяснить его настолько лучше всего, как я могу, но до сих пор I' ve, очевидно, потерпел неудачу. В CSLA у списков есть сложное поведение по сравнению с IList. Например, у списка есть собственность IsValid, которая указывает на законность всех пунктов в списке. В деловом слое мне нужна эта функциональность. В слое данных I don' t нужна вся эта сложность. Таким образом, я создал интерфейс, используя IList, чтобы позволить более легкое тестирование в слое данных. Однако, в деловом слое мне нужна собственность IsValid. Следовательно мой оригинальный вопрос. Он возможный передать поведение в Насмешках Носорога, вопрос you' ve, которому не отвечают.
добавлено автор sixeyes, источник
Хорошо. I' ll пытаются объяснить его настолько лучше всего, как я могу, но до сих пор I' ve, очевидно, потерпел неудачу. В CSLA у списков есть сложное поведение по сравнению с IList. Например, у списка есть собственность IsValid, которая указывает на законность всех пунктов в списке. В деловом слое мне нужна эта функциональность. В слое данных I don' t нужна вся эта сложность. Таким образом, я создал интерфейс, используя IList, чтобы позволить более легкое тестирование в слое данных. Однако, в деловом слое мне нужна собственность IsValid. Следовательно мой оригинальный вопрос. Он возможный передать поведение в Насмешках Носорога, вопрос you' ve, которому не отвечают.
добавлено автор sixeyes, источник

2 ответы

Осуществите интерфейс в абстрактном базовом классе для тестирования:

public abstract MyMockableList : List, IMyListInterface
{
    public abstract void Foo();
}

You can then use MockRepository.GenerateStub(), which will function as a normal list (RhinoMocks won't override the methods inherited from List) but you can still stub out the Foo() method.

0
добавлено
Большое спасибо.
добавлено автор sixeyes, источник

Осуществите интерфейс в абстрактном базовом классе для тестирования:

public abstract MyMockableList : List, IMyListInterface
{
    public abstract void Foo();
}

You can then use MockRepository.GenerateStub(), which will function as a normal list (RhinoMocks won't override the methods inherited from List) but you can still stub out the Foo() method.

0
добавлено
Большое спасибо.
добавлено автор sixeyes, источник
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)