Mam działań, które opiera się na User.Identity.Name aby uzyskać nazwę użytkownika bieżącego użytkownika, aby uzyskać listę rozkazów:Testowanie działania kontroler, który wykorzystuje User.Identity.Name
public ActionResult XLineas()
{
ViewData["Filtre"] = _options.Filtre;
ViewData["NomesPendents"] = _options.NomesPendents;
return View(_repository.ObteLiniesPedido(User.Identity.Name,_options.Filtre,_options.NomesPendents));
}
Teraz Próbuję napisać testy jednostkowe, ale utknąłem na tym, jak dostarczyć Mock dla User.Identity.Name. Jeśli uruchomię test tak, jak go mam (bez fałszywej próby dla użytkownika ...), otrzymuję wyjątek Null ..
Jakie jest właściwe podejście do tego? Myślę, że mój kod Action nie nadaje się do testów jednostkowych.
Świetnie. Muszę zagłębić się w ActionFiltry ... Dzięki. –
Często kpię z IPrincipala za moje testy. Pozwala mi to przetestować informacje użytkownika (nazwę użytkownika), ale także autoryzację (User.Identity.IsInRole). –
Podobnie jak ja. Z drugiej strony, kpina z IPrincipala tylko po to, by uzyskać dostęp do nazwy użytkownika bieżącego użytkownika - i * nic * innego - jest na granicy przesady ... :) –