Solo quiero preguntar cuál sería el mejor enfoque para suministrar estos objetos en mis pruebas unitarias.Mock IIdentity e IPrincipal
En mi prueba de unidad estoy probando el objeto CSLA. El objeto CSLA está usando internamente una propiedad y un método del objeto ApplicationUser. ApplicationUser se hereda de IPrincipal. Las propiedades son: 1) ApplicationContext.User.IsInRole (...) - el método es parte de IPrincipal 2) ApplicationContext.User.Identity.Name - el nombre es propiedad de IIdentity que es parte de ApplicationUser aka IPricipal
Ejemplo de mi prueba (utilizando 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
}
}
tengo pequeño problema con el segundo valor, el nombre de identidad. Traté de burlarme, pero tuve problemas para asignar IIdentity burlado a ApplicationUser, ya que se hace internamente. Me dijeron que acabara de crear yo solo IIPrincipal (incluido IIdentity) y que no me burlara de él. Que se puede hacer con seguridad. ¿No está seguro de si esto se puede llamar como uso de Stub?
Entonces, ¿me puede aconsejar cómo lidiar con IPrincipal y IIdentity? Cualquier sugerencia más bienvenida.
'CreateMock' ya no se utiliza. Use 'StrictMock' o' DynamicMock' en su lugar. – Padhraic