代码之家  ›  专栏  ›  技术社区  ›  BobTheBuilder

如何在nunit中对ASP.NET MVC应用程序的视图和授权属性进行单元测试?

  •  6
  • BobTheBuilder  · 技术社区  · 17 年前

    我正准备开始为我的MVC应用程序编写单元测试。我已经知道了如何对控制器进行单元测试,并且可以在没有任何问题的情况下对底层业务库进行单元测试。不过,我要把一些东西解开:

    • 如何对视图进行单元测试?也就是说,在控制器返回正确的视图之后(我已经对其进行了单元测试,并对其进行了单元测试,以检查它是否传递了正确的数据)。是否有一种方法可以单元测试视图是否在nunit中的正确字段中显示正确的数据,或者为此需要其他工具?

    • 如何对安全进行单元测试?我使用的是一个自定义的成员资格提供程序和角色提供程序,我想它们本身和其他任何组件一样都可以进行单元测试——我只是更新了提供程序,并检查每个方法是否返回预期的输出。我好奇的是,如何对我的每个控制器方法都从提供者那里接收到正确的安全信息进行单元测试[即,authorize属性正常工作的单元测试]?

    3 回复  |  直到 17 年前
        1
  •  3
  •   BenAlabaster    17 年前

    这是一篇关于单元测试自定义授权组件的博客文章。它不涉及RoleProviders和MembershipProviders,但是您应该能够有效地使用相同的方法来测试任意数量的过滤器。

    http://darioquintana.com.ar/blogging/2009/05/23/aspnet-mvc-testing-a-custom-authorize-filters/

    免责声明:要理解它可能需要几个语法分析——它写得不太清楚,提供的示例代码也不完全符合要求,但是您应该能够从中收集到您需要的东西。

        2
  •  1
  •   ulu    17 年前

    你可以使用 Ivonna 商业工具,或 MvcIntegrationTestFramework 一个免费的。两者都支持在进程中测试您的视图,但是Ivonna允许您模拟其余的视图,调整配置等,所以它更多的是在单元测试方面。

        3
  •  0
  •   Josh    17 年前

    对于UI(控制器和向下)下的集成测试,您可以使用 Fit, FitNesse ,请 Slim ,甚至 StoryTeller .

    对于UI测试(您的视图),您应该考虑使用 Selenium ,和 Selenium RC .

    我知道这是很多信息,但是当涉及到更健壮的测试解决方案时,它会非常适合您。