Как и в любой фреймворковой среде, Rhino Mocks может только макетировать интерфейсы или классы, которые определяют виртуальные методы и свойства.
Это потому, что при реализации класса Rhino создает производный класс из указанного вами, заменяя каждыйvirtual
(или Overridable
в VB) метод с реализацией заглушки, который использует перехватчик для обработки вызова.
Когда вы указываете не виртуальный метод, Rhino не может создать оболочку.
Это также верно для sealed
(NonInheritable
в VB) классов.
Таким образом, чтобы ваш класс работал, вы должны реализовать это свойство следующим образом:
public class Person
{
public virtual string FirstName { get; set; }
}
Таким образом, Rhino может соответственно переопределить poperty.