我有一个依赖于 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));
}
现在我正在尝试为此编写单元测试,但我卡在如何为 User.Identity.Name 提供 Mock 上。如果我按照当前的方式运行测试(没有 User 的 Mock ...),我会得到一个 Null.. 异常。
哪种方法是正确的?我想我的 Action 代码不适合进行单元测试。
MyController controller = new MyController(); controller.User = new GenericPrincipal(new GenericIdentity(username, "Passport"), new[] { "tester" });
- Ravi