2009-06-26 82 views
5

我有一个现有的asp.net webforms应用程序,我想添加一些单元测试,但不确定如何去做。将单元测试添加到现有的asp.net web窗体应用程序

该应用程序是数据库驱动的功能,我想你可以比较高级论坛。逻辑,数据访问和表示大部分是分开的。

我应该测试哪些方法?

如何处理数据库和测试数据?

是否有任何工具可以帮助解决这个问题?

回答

5

您需要决定的第一件事是:您对添加单元测试的动机是什么?

单元测试有很多很好的理由(我自己严格练习TDD),但知道哪一个是您的案例的主要驱动力应该可以帮助您决定首先编写哪些测试。

在大多数情况下,您应该专注于为您的应用程序的领域编写单元测试,这些测试过去一直是您最痛苦的部分。很多经验表明,当软件最初是在没有单元测试的情况下编写的时候,以后很难对单元测试进行改进。 Working Effectively with Legacy Code为如何使未测试的软件项目可测试提供了有价值的指导。

1

我很可能会测试你的web窗体调用的支持方法(绕过窗体验证),这会让你测试逻辑和数据访问。

至于测试数据,一个单独的测试数据库将是最好的选择。否则,我建议让测试方法一旦完成就移除测试数据。

1

对于数据库相关的单元测试,我们使用一个独立稳定的测试数据库来执行单元测试。

我们还在未提交的TransactionScope中包装数据修改测试,从而为后续测试运行回滚数据更改。我们发现这个作品非常好。

0

在工具方面,我也在寻找某种方式来测试ASP.NET webforms应用程序。对于模型部分(数据访问等),我使用NUnit(本地sql express数据库),并编写代码在所有测试运行之前创建架构(从我们签入的.sql文件中)。

在测试之间,我使用NUnit DataRollback扩展在每次运行后回滚任何数据库更改。

我仍然不知道测试页面中的逻辑的好方法,类似于Rails的功能测试。从报道的角度来看,这是毁灭性的。您可以将大量逻辑推回到模型中,但是您的代码中的代码总是存在于重要的文件中,可能会中断,并且您想要对单元进行测试。

相关问题