Как смоделировать свойство с помощью NUnit? - PullRequest
7 голосов
/ 16 марта 2011

Как мне смоделировать свойство, используя NUnit?


ПРИМЕЧАНИЕ : я нашел этот периферийный насмешливый ответ чрезвычайно полезным и переназначил его как отдельную запись вопроса и ответа здесь для других, чтобы найти.

Другие ответы приветствуются.

NUnit-Discuss Примечание: NUnit Mocks был создан за выходные как реализация игрушечного макета [...] Я начинаю думать, что это ошибкапотому что вы далеко не первый человек, который станет на него полагаться.
- http://groups.google.com/group/nunit-discuss/msg/55f5e59094e536dc
(Чарли Пул в NUnit Mocks)

1 Ответ

9 голосов
/ 16 марта 2011

Чтобы смоделировать свойство Имена в следующем примере ...

Interface IView {    
    List<string> Names {get; set;} 
}

public class Presenter {    
    public List<string> GetNames(IView view)    {
       return view.Names;    
    } 
}

NUnit Mock Solution для объекта недвижимости

using NUnit.Mocks;

В NUnit PropertyName можно смоделировать с помощью get_PropertyName , чтобы смоделировать метод доступа get, и set_PropertyName , чтобы смоделировать метод доступа set, используя библиотеки mock библиотеки Ожидайте * (..) таких методов:

List names = new List {"Test", "Test1"};
DynamicMock mockView = new DynamicMock(typeof(IView));

mockView.ExpectAndReturn("get_Names", names);

IView view = (IView)mockView.MockInstance;
Assert.AreEqual(names, presenter.GetNames(view));

Поэтому в нашем конкретном примере кода сверху свойство .Names имитируется как get_Names или set_Names .


1029 * Etc. * Этот пост в блоге предоставляет дополнительную информацию, учитывая, что NUnit, по-видимому, предоставляет фиктивные методы только для целевых методов: Я начал думать об этом и понял, что имущество добытчиков и сеттеры рассматриваются как особые именованные методы под одеялом

...