您的位置:软件测试 > 开源软件测试 > 开源软件测试解决方案 > 开源测试工具二次方案
使用 RSpec 进行行为驱动测试
作者:网络转载 发布时间:[ 2012/12/19 15:41:13 ] 推荐标签:

  测试热潮现在传播到了 Ruby 编程社区,并且愈演愈热。在过去一年里,测试领域中为瞩目的创新应属 RSpec 的引入和快速发展,这是一种行为驱动测试工具。通过本文了解 RSpec 如何改变人们思考测试的方式。
        在过去十年中,软件开发人员对测试的热情日渐低迷。同一时期出现的动态语言并没有提供编译程序来捕捉基本的错误,这使得测试变得更加重要。随着测试社区的成长,开发人员开始注意到,除了捕获 bug 等基本的优点外,测试还具有以下优势:

        测试能够改进您的设计。进行测试的每个目标对象必须具备至少两个客户机:生产代码和测试用例。这些客户机强制您对代码进行解耦。测试还鼓励开发人员使用更小、更简单的方法。
        测试减少了不必要的代码。在编写测试用例时,您养成了很好的测试习惯,即只编写运行测试用例所需的少代码。您抵制住了对功能进行编码的诱惑,因为您目前还不需要它。

        推动了测试优先开发。您编写的每个测试用例会确定一个小问题。使用代码解决这个问题非常有用并且可以推动开发。当我进行测试驱动开发时,时间过得飞快。
测试提供了更多的自主权。在使用测试用例捕获可能的错误时,您会发现自己非常愿意对代码进行改进。


测试驱动的开发和 RSpec
        有关测试的优点无需赘述,我将向您介绍一个简单的使用 RSpec 的测试驱动开发示例。RSpec 工具是一个 Ruby 软件包,可以用它构建有关您的软件的规范。该规范实际上是一个描述系统行为的测试。使用 RSpec 的开发流程如下:

        编写一个测试。该测试描述系统中某个较小元素的行为。
        运行测试。由于尚没有为系统中的相应部分构建代码,测试失败。这一重要步骤将测试您的测试用例,检验测试用例是否在应当失败的时候失败。
        编写足够的代码,使测试通过。
        运行测试,检验测试是否成功。
        实质上,RSpec 开发人员所做的工作是将失败的测试用例调试为成功的测试用例。这是一个主动的过程。本文中,我将介绍 RSpec 的基本用法。

        首先,假设您已安装了 Ruby 和 gems。您还需要安装 RSpec。输入下面的内容:

gem install rspec

使用示例
        接下来,我将逐步构建一个状态机。我将遵循TDD 规则。首先编写自己的测试用例,并且直到测试用例需要时才编写代码。Rake 的创建者 Jim Weirich 认为这有助于角色扮演。在编写实际的生产代码时,您希望充当一回 jerk 开发人员的角色,只完成少量的工作来使测试通过。在编写测试时,您则扮演测试人员的角色,试图为开发人员提供一些有益的帮助。

        以下的示例展示了如何构建一个状态机。如果您以前从未接触过状态机,请查阅 参考资料。状态机具有多种状态。每种状态支持可以转换状态机状态的事件。测试驱动开发入门的关键是从零入手,尽量少地使用假设条件。针对测试进行程序设计。

        使用清单 1 的内容创建名为 machine_spec.rb 的文件。该文件是您的规范。您还不了解 machine.rb 文件的作用,目前先创建一个空文件。

  清单 1. 初的 machine_spec.rb 文件
  require 'machine'

软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd