我正在尝试对剃刀视图进行单元测试。特别是,我正在尝试编写一个管理员按钮 - 如果登录的用户是管理员,则该按钮出现在主工具栏上。
目前我们没有任何测试,它的工作方式是设置一个名为 CurrentUser 的静态对象。
剃刀:
@if CurrentUser.IsAdmin()
{
<button>admin</button>
}
但是,由于我们正在调用 CurrentUser - 在项目的其他地方设置的静态对象,我不确定我们是否不能独立地对该剃刀视图进行单元测试。我认为我们必须创建一个用户对象,让用户实例登录,并将其注入剃刀视图。
例如。
Controller
{
ActionResult Index(){
var currentUser = //somehow get current user
return View(currentUser);
}
但是,如果我正在测试的剃刀视图是 _Layout 页面怎么办?每当我呈现页面时,我是否必须注入当前用户?
有没有办法可以将当前用户注入 View 的父级?也许我必须重写 View 方法?有任何想法吗?
谢谢!