我开发的ASP.NET应用程序(在ASP.NET 2.0上)通常由数据库支持;服务器上的绝大多数.NET代码都以DataSet
或SqlDataReader
的形式加载数据,并使用它来对数据DataGrid
进行数据绑定。有意义的逻辑依赖于数据库或依赖于用户界面。
在这种情况下,我应该如何实现由持续集成服务器(可能是CruiseControl.NET)运行的单元测试?我应该为它设置测试数据库连接以用于测试CRUD操作和更复杂的SPROC,还是应该在.NET代码中包含更多逻辑而不是SPROC?当数据库中存在应用程序期望找到的结构时(例如我正在为CMS编写的“用户”表),这会变得更加复杂。
答案 0 :(得分:1)
看一下MVP模式(Model View Presenter)。这应该允许您隔离系统的行为并对单元进行正确的测试。
另外,考虑切换到MVC(我会使用Fubu而不是ASP.NET MVC)。这将允许您测试控制器并具有更多类似轨道的体验。
要自动化,我使用WatiN(就像watir但是用于.NET)。最重要的是,我使用StoryTeller(Google“StoryTeller Jeremy Miller”)以更加人性化的方式呈现正在发生的事情,并为QA提供模板以供使用。
我强烈建议不要使用sprocs中的任何业务逻辑。远离他们。查看存储库模式以抽象获取和设置数据。
希望这能让你开始。