Je veux mocker la propriété User d'un HttpContext. J'utilise la classe Scott Hanselmans MVCHelper et RhinoMocks.Mocking et HttpContextBase.get_User()
J'ai un test unitaire qui contient le code, comme ceci:
...
MockIdentity fakeId = new MockIdentity("TEST_USER", "Windows", true);
MockPrincipal fakeUser = new MockPrincipal(null, fakeId);
using (mocks.Record())
{
Expect.Call(fakeHttpContext.User).Return(fakeUser);
}
...
Mon MockIdentity et les classes MockPrincipal sont conformes aux simulacres IIdentity et IPrincipal, respectivement.
je reçois une erreur lors de l'exécution du test unitaire qui rapporte:
System.NotImplementedException: La méthode ou opération n'est pas mis en œuvre. à System.Web.HttpContextBase.get_User()
Cela se produit lorsque j'essaie de définir l'attente pour la propriété utilisateur.
Je comprends que le httpContextBase a un getter et un setter qui ne sont pas implémentés mais je pensais que Rhino gérerait cela en se moquant. Cela signifie-t-il que je dois dériver de HttpContextbase et remplacer la propriété de mon objet fantaisie? Cela semble étrange.
D'autres utilisateurs ont eu ce problème et il est rapporté ici: http://www.mail-archive.com/[email protected]/msg00546.html
Brialliant Ben. À votre santé. Je pense que ma compréhension de Stubs et Mocks a besoin d'être «brossée». J'ai eu un problème avec: httpContext.Stub (x => x.User) .Return (yourFakePrincipalHere); mais remplacé par: httpContext.User - = [fakeUser]; Qui a bien fonctionné. – Lewis