加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

单元测试:在您的数据库项目中应用测试驱动的开发

发布时间:2016-04-24 22:29:46 所属栏目:教程 来源:网络整理
导读:本文讨论: TDD 的优点 在数据库开发中应用单元测试 组合 T-SQL 与 .NET 兼容的语言 连接、测试条件和事务 本文使用了以下技术: Visual Studio 2008, SQL Server
本文讨论:

TDD 的优点

在数据库开发中应用单元测试

组合 T-SQL 与 .NET 兼容的语言

连接、测试条件和事务

本文使用了以下技术:

Visual Studio 2008, SQL Server

LMicrosoft 于 2006 年 11 月发布了 Visual Studio® Team System Database Edition,也称为 DBPro 或 Data Dude,它向产品生命周期方法中引入了数据库开发。DBPro 还引进了数据库单元测试设计 器,使用它可以轻松地生成或编写面向 T-SQL 的单元,在开发前验证数据库对象。在本文中,我将深入 阐述数据库单元测试,解释运用功能的方法,展示如何对您自己的数据库项目执行单元测试。

软件开发中的单元测试

在软件开发中,单元测试在确保质量水平和满足里程碑要求方面发挥着重要的作用。尽管很多开发人 员均认可单元测试的重要性,但他们大都不会在产品周期结束时花费时间编写单元测试。为解决这一问题 ,测试驱动开发 (TDD) 方法应运而生。开发人员可以使用这种方法在实际运用功能前编写单个功能的单 元测试。这样,开发人员就可以从外到内查看 API,尽可能简化设计。

如今,众多使用 C# 和 Visual Basic® 的开发人员均以 TDD 为指导,通过创建单元测试在尚未 编写的类上试用方法,然后利用最少量的代码编译测试。如果编译后的测试失败,开发人员只需编写通过 下一轮测试所必需的代码即可。每次迭代时均运行所有单元测试来验证没有出现回归错误。应用程序和单 元测试代码随后签入源代码控件。每个单元测试针对所开发的方法运行两次。

为充分发挥作用,单元测试在其运行前必须设置自身的执行环境,以便稳定地验证其专门测试的代码 。实施并验证测试后,将其签入源代码控件并在产品生命周期的其余部分使用,以确保按预期继续使用方 法。

由于您需要提供稳定的测试环境以便在签入更改前验证代码,TDD 也因此在数据库开发中变得更具挑 战性。为了让数据库单元测试成功运行,它必须具备合适的架构和数据。这意味着为运行测试,其他开发 人员在创建单元测试时必须重用您所使用的环境。如果没有大量造价高昂的基础结构,这一点很难实现。 幸运的是,DBPro 能让身处这一环境的开发人员遵循相同的单元测试流程。

从源代码控件中获得最新的测试和数据库项目,然后将新存储的过程加入数据库项目中。配置过程的 输入和输出参数。

右键单击新存储的项目,然后选择“create unit tests”(创建单元测试)。将单元测试 添加到现有的测试项目中。新测试类加入带有 T-SQL 的测试项目,T-SQL 将使用默认输入参数执行新存 储的过程。

修改输入参数以包含预期值,然后添加测试条件以验证存储的过程是否返回了预期的结果。

运行测试。进行测试设置时,将数据库项目部署到本地的 SQL Server® 实例中,并执行数据生成 计划以用预期的测试数据填充新部署的数据库。针对本地 SQL Server 实例执行测试,测试会失败(这是 预期的结果,因为存储过程的逻辑尚未执行)。

执行存储过程的逻辑并再次运行测试。部署更新后的存储过程并通过测试。

运行所有测试来验证数据库,然后将存储的过程和单元测试代码签入源代码控件中。

DBPro 提供的功能包括:从现有的函数、存储的过程或触发器生成存根 T-SQL 单元测试;自动将数据 库项目更新部署到沙箱实例中;使用数据生成计划在测试环境设置过程中生成数据;以及针对目标数据库 执行 T-SQL 测试。尽管这些功能可一起使用,但并不要求必须这样做。例如,可以从头编写数据库单元 测试,不必在每个测试运行前都生成数据。

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!