如何使用asp.net 4.0 Web窗体进行TDD / BDD?

时间:2011-11-24 14:16:11

标签: unit-testing webforms

如何使用asp.net 4.0 Web窗体进行TDD / BDD?我有一个规模非常大的现有网站,我们没有对数据库中的每个变化进行任何测试我们必须猜测会破坏什么?我想介绍一下单元测试请给我指点一下?

1 个答案:

答案 0 :(得分:3)

很多将取决于您现有代码库的结构。

将单元测试,尤其是TDD改造为遗留项目可能需要做大量的工作。通常,您会发现数据库和业务逻辑位于网页的代码隐藏文件中。

使用接口类型是您的朋友,因为Visual Studio可以自动为您生成接口类。 (将光标放在类名上,右键单击,选择重构并提取界面)

我会努力将您的数据库代码分离到它自己的类库项目中。然后,您可以指定业务逻辑等可以通过其访问数据库的公共接口。所有其他代码都应将数据库存储库视为黑盒子。

创建工厂以创建存储库(基于该接口),让它创建测试类型和实时类型。实时类型将链接到您当前的数据库代码。测试类型将返回硬编码值。您可以使用实时数据库编写测试,然后您可以以TDD方式为“测试”数据库编写测试。

一旦它们都匹配(所有测试都通过),首先编写在“test”数据库上运行的测试然后在实时数据库上添加任何新的数据库功能。

请记住,所有代码只应使用数据库的接口而不是实例化的实时数据库类。

一旦掌握了流程,您就可以在数据库代码中深入研究(如果您愿意),但我会说在分离和测试业务和UI逻辑时遵循相同的流程对于传统更加实用项目

您可能会发现,务实的方法是仅在您添加新代码时描述的过程之后分离出功能。换句话说,在添加新功能之前,请按照描述的方式分离代码,编写表明它通过的测试(实时和测试版本),然后使用测试通过或无法指导编码来更改或添加新功能的测试。 / p>

如果覆盖所有基础,你想要测试失败,测试通过,也许测试异常场景。

祝你好运。对于胆小的人来说这不是一份工作(过去不得不多次这样做)。