Я просто хочу спросить, что лучше всего подходит для поставки этих объектов в моих модульных тестах.
В моем unit test я тестирую объект CSLA. Объект CSLA внутренне использует одно свойство и один метод объекта ApplicationUser. ApplicationUser наследуется от IPrincipal. Свойства: 1) ApplicationContext.User.IsInRole(...) - метод является частью IPrincipal 2) ApplicationContext.User.Identity.Name - имя является свойством IIdentity, которое является частью ApplicationUser aka IPricipal
Пример моего теста (с использованием RhinoMock):
public void BeforeTest()
{
mocks = new MockRepository();
IPrincipal mockPrincipal = mocks.CreateMock<IPrincipal>();
ApplicationContext.User = mockPrincipal;
using (mocks.Record()) {
Expect.Call(mockPrincipal.IsInRole(Roles.ROLE_MAN_PERSON)).Return(true);
Expect.Call(mockPrincipal.Identity.Name).Return("ju"); //doesn't work!!!! return null ref exc
}
}
У меня есть небольшая проблема со вторым значением, именем. Я попытался издеваться над этим, но у меня возникли проблемы с назначением отладчика IIdentity для ApplicationUser, поскольку это делается внутренне. Мне сказали просто создать некоторую IIPrincipal (в том числе IIdentity) самостоятельно, а не издеваться над ней вообще. Что можно сделать наверняка. Не уверен, что это можно назвать Stub, используя?
Так вы можете посоветовать мне, как бороться с IPrincipal и IIdentity? Любое предложение приветствуется.