如何测试ASP.NET代码隐藏

如何测试ASP.NET代码隐藏,asp.net,nunit,code-behind,functional-testing,Asp.net,Nunit,Code Behind,Functional Testing,我们正在重新编写遗留代码,但目前我想知道如何测试方法背后的代码 详情: 没有使用aspx控件 事实上,代码隐藏读取html文件,从数据库中填充数据,并将最终的html写入响应 我知道代码隐藏方法是可测试的,但如何测试呢?有工具吗?你能提供一些参考资料吗?谢谢。基本上,代码隐藏不应该包含任何繁重的逻辑。代码隐藏应该知道UI控件初始化、通过处理事件更新UI等等 我建议将功能单元提取到单独的类中,然后只测试这些类本身。在您的情况下,我至少看到两个独立的抽象功能单元: 数据访问层 HTML编写器 如果您

我们正在重新编写遗留代码,但目前我想知道如何测试方法背后的代码

详情:

  • 没有使用aspx控件
  • 事实上,代码隐藏读取html文件,从数据库中填充数据,并将最终的
    html
    写入响应

  • 我知道代码隐藏方法是可测试的,但如何测试呢?有工具吗?你能提供一些参考资料吗?谢谢。

    基本上,代码隐藏不应该包含任何繁重的逻辑。代码隐藏应该知道UI控件初始化、通过处理事件更新UI等等

    我建议将功能单元提取到单独的类中,然后只测试这些类本身。在您的情况下,我至少看到两个独立的抽象功能单元:

  • 数据访问层
  • HTML编写器
  • 如果您想测试UI行为,可以使用specisl框架,如:

    受Watir的启发,WatiN于2005年12月开始开发 使类似的Web应用程序测试成为可能 语言。从那时起,WatiN已发展成为一个易于使用的功能 丰富稳定的框架。WatiN是在C#开发的,旨在带来 您可以使用Internet Explorer和 使用.Net的FireFox

    编辑:回复评论

    • 通常,数据访问助手和服务位于一个单独的组件中,并由接口抽象,因此很容易被替换和测试
    • 我喜欢每个项目都有单独的测试项目的方法,基本上如果您坚持使用单独的项目
      DataAccessLayer
      -所有相关的测试都可以放在单独的
      DataAccessLayer.tests
      项目中

    我认为您应该看看ASP.NET Web表单的MVP(模型视图演示器)模式。我也在重写一个没有使用MVP的网站

    以下是一些链接:


    我希望这对你有帮助。此外,如果你有机会阅读迪诺·埃斯波西托(Dino Esposito)的书,你会发现一个很好的章节详细解释了MVP。

    因为我正在处理一个现有的网站,你对如何组织这些单独的课程有什么建议(转到应用程序代码或单独的DLL)?还有,我的考试班在哪里?谢谢。@user259760:请参阅我回答的编辑部分,因为我提到我们正在重写。这将需要一段时间,同时我们希望开始测试与现有网站集成的框架。你还有其他想法吗(因为你也处于同样的状态)?谢谢