加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 确保视图存在

发布时间:2020-12-16 04:13:45 所属栏目:asp.Net 来源:网络整理
导读:我目前正在研究我必须创建的新应用程序的单元测试.我已经很好地进行了基本测试(测试ActionResult类非常好).但我确实要确定的一点是,我的解决方案中存在一个视图.我不是100%肯定我的测试是正确的,所以如果有人有建议,请不要犹豫! 这是一个测试,我必须检查我
我目前正在研究我必须创建的新应用程序的单元测试.我已经很好地进行了基本测试(测试ActionResult类非常好).但我确实要确定的一点是,我的解决方案中存在一个视图.我不是100%肯定我的测试是正确的,所以如果有人有建议,请不要犹豫!

这是一个测试,我必须检查我的安全控制器上的登录方法是否正确:

[TestMethod]
public void Login()
{
    var authProvider = new Mock<IAuthenticationProvider>();
    var controller = new SecurityController(authProvider.Object);

    var result = controller.Login() as ViewResult;

    Assert.IsNotNull(result,"ActionResult should be of type ViewResult.");
    Assert.AreEqual(result.ViewName,"login","Does not render login page.");
}

我对测试的解释是:

>在控制器上调用“登录”方法
>确认它呈现视图(通过检查它是否返回ViewResult对象)
>确认它呈现正确的视图(通过检查视图名称)

我想要的是第三个断言,看看要呈现的视图是否确实存在.

我的一些次要问题是:

>我应该分开这个测试吗?
>我应该重命名它(比如,错误,LoginRendersCorrectView或其他东西)

谢谢!

注意:我明确地试图避免检查文件系统.我有点希望能够使用ViewEngine确认视图实际存在.

解决方法

>不,我不认为你应该分开测试,只要它主要是第三个断言而不是更多的代码.
>是的,我认为更具描述性的名称会有所帮助.
>既然您已经验证它已经具有正确的视图名称,那么不会简单地成功渲染视图来验证它的存在吗?

我认为你很棒的是你正在进行完整的测试覆盖,但是如果你能够继续进行验证执行特定登录功能的单元的部分,我觉得可能会更有效地利用你的时间(例如验证密码哈希或其他)正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读