【问题标题】:tdd - how to test whether User.Identity.Name appears in razor viewtdd - 如何测试 User.Identity.Name 是否出现在剃刀视图中
【发布时间】:2012-08-29 05:51:44
【问题描述】:

我正在尝试对剃刀视图 (MVC .NET) 进行单元测试。我想测试登录的用户名是否出现在网站上。由于 User.Identity.Name,我不确定我将如何做到这一点 - 这是一个静态对象,所以不能被嘲笑。

应该在测试中设置这个静态对象吗?有更好的方法吗?

谢谢!

【问题讨论】:

    标签: asp.net-mvc-3 razor tdd


    【解决方案1】:

    您可以创建一个带有模拟 HttpContext 的 ControllerContext,以根据您的喜好返回 IPrincipal。请参阅这篇文章了解如何做到这一点:

    Mocking and HttpContextBase.get_User()

    该示例使用 Rhino Mocks,但很容易适应您使用的任何模拟框架。确保伪造的 IPrincipal.Identity.Name 返回名称的字符串。如果你觉得不清楚,我可以举一个 FakeItEasy 或 Rhino Mocks 的例子。

    然后,您可以断言放置在 ViewBag 或 ViewModel 中的用户名与您让假 IIdentity 返回的用户名相同。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2016-01-30
      • 2018-08-30
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2018-04-24
      • 2018-10-30
      • 1970-01-01
      相关资源
      最近更新 更多