如何在数据库支持的ASP.NET应用程序中实现单元测试(也是UI测试)

时间:2011-06-01 00:27:54

标签: asp.net unit-testing

我开发的ASP.NET应用程序(在ASP.NET 2.0上)通常由数据库支持;服务器上的绝大多数.NET代码都以DataSetSqlDataReader的形式加载数据,并使用它来对数据DataGrid进行数据绑定。有意义的逻辑依赖于数据库或依赖于用户界面。

在这种情况下,我应该如何实现由持续集成服务器(可能是CruiseControl.NET)运行的单元测试?我应该为它设置测试数据库连接以用于测试CRUD操作和更复杂的SPROC,还是应该在.NET代码中包含更多逻辑而不是SPROC?当数据库中存在应用程序期望找到的结构时(例如我正在为CMS编写的“用户”表),这会变得更加复杂。

此外,对用户界面进行单元测试的最佳方法是什么?我找到了NUnitASP,现已放弃,但提及SeleniumWatir

1 个答案:

答案 0 :(得分:1)

看一下MVP模式(Model View Presenter)。这应该允许您隔离系统的行为并对单元进行正确的测试。

另外,考虑切换到MVC(我会使用Fubu而不是ASP.NET MVC)。这将允许您测试控制器并具有更多类似轨道的体验。

要自动化,我使用WatiN(就像watir但是用于.NET)。最重要的是,我使用StoryTeller(Google“StoryTeller Jeremy Miller”)以更加人性化的方式呈现正在发生的事情,并为QA提供模板以供使用。

我强烈建议不要使用sprocs中的任何业务逻辑。远离他们。查看存储库模式以抽象获取和设置数据。

希望这能让你开始。