gpt4 book ai didi

unit-testing - 如何使用 asp.net 4.0 Web 表单进行 TDD/BDD?

转载 作者:行者123 更新时间:2023-12-04 06:06:45 26 4
gpt4 key购买 nike

如何使用 asp.net 4.0 Web 表单进行 TDD/BDD?我有一个规模很大的现有网站,我们没有对数据库的每次更改进行任何测试,我们必须猜测会破坏什么?我想介绍单元测试请指点?

最佳答案

很大程度上取决于您现有代码库的结构。

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

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

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

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

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

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

一旦掌握了流程的窍门,您就可以在数据库代码中进行更深入的研究(如果您愿意的话),但我想说的是,在分离和测试业务和 UI 逻辑时遵循相同的流程在遗留项目中更实用。

您可能会发现一种务实的方法是仅按照我在您添加新代码时所描述的过程分离出功能。换句话说,在您添加新功能之前,按照描述编写显示它通过的测试(实时和测试版本)的代码分离代码,然后根据测试通过或失败来指导您的编码来更改或添加新功能的测试。

如果涵盖所有基础,您需要进行失败测试、通过测试以及异常情况测试。

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

关于unit-testing - 如何使用 asp.net 4.0 Web 表单进行 TDD/BDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com