首页 > 其他分享 >无涯教程-RSpec - 简介

无涯教程-RSpec - 简介

时间:2023-11-18 20:32:03浏览次数:35  
标签:BDD 教程 无涯 rspec RSpec Ruby spec gem

行为驱动开发(英语:Behavior-driven development,缩写BDD)是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。BDD最初是由Dan North在2003年命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。在过去数年里,它得到了很大的发展。

2009年,在伦敦发表的“敏捷规格,BDD和极限测试交流”[3]中,Dan North对BDD给出了如下定义: BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。

BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识。它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的。这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上,而且也最大程度的减少了将代码编写者的技术语言与商业客户、用户、利益相关者、项目管理者等的领域语言之间来回翻译的代价。


Dan North创造了首个BDD框架:JBehave;之后是Ruby语言的基于故事的RBehave,后来被纳入了RSpec项目。他还与大卫赫利姆斯基、Aslak Hellesøy及其他人开发了RSpec,并一起编写了《The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends》。RSpec中第一个基于故事的框架,后来被主要由Aslak Hellesøy开发的Cucumber取代。


2008 年,参与了围绕BDD进行的首轮讨论的克里斯马茨,提出了特性注入(Feature Injection)的想法,使BDD可以覆盖分析空间并提供从初期的展望到编码和发布的整个软件生命周期过程的改造。   --来源维基百科

RSpec环境

首先,您将需要在计算机上安装Ruby。但是,如果您还没有做过,则可以从主要的Ruby网站下载并安装Ruby-Ruby。

如果要在Windows上安装Ruby,则应在此处安装Windows的Ruby安装程序-http://www.rubyinstaller.org

对于本教程,您仅需要文本编辑器,例如记事本和命令行控制台。此处的示例将在Windows上使用cmd.exe。

要运行cmd.exe,只需单击"开始"菜单并键入" cmd.exe",然后按回车键。

在cmd.exe窗口的命令提示符处,键入以下命令,以查看您正在使用的Ruby版本-

ruby -v

您应该看到以下看起来与此类似的输出-

ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]

本教程中的示例将使用Ruby 2.2.3,但是任何高于2.0.0的Ruby版本都足够。接下来,无涯教程需要为您的Ruby安装安装RSpec gem。 gem是一个Ruby库,您可以在自己的代码中使用它。为了安装gem,您需要使用 gem 命令。

现在安装Rspec gem。返回您的cmd.exe窗口并键入以下内容-

gem install rspec

您应该具有已安装的从属gem列表,这些是rspec gem需要正确运行的gem。在输出的末尾,您应该看到如下所示的内容:

Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
   rspec-expectations, rspec-core, rspec after 22 seconds 
6 gems installed

如果您的输出看起来不完全相同,请不要担心。另外,如果您使用的是Mac或Linux计算机,则可能需要使用 sudo 运行 gem install rspec 命令或使用HomeBrew或RVM之类的工具来安装rspec。

Hello World

首先,创建一个目录(文件夹)来存储RSpec文件。在您的cmd.exe窗口中,键入以下内容-

cd\

然后输入-

mkdir rspec_tutorial

最后,键入-

cd rspec_tutorial

在这里,将创建另一个名为spec的目录,方法是输入-

mkdir spec

将RSpec文件存储在此文件夹中。 RSpec文件被称为规范。如果这让您感到困惑,则可以将规格文件视为测试文件。 RSpec使用术语" spec",这是" specification"的缩写。

由于RSpec是BDD测试工具,因此目标是专注于应用程序执行的操作以及它是否遵循规范。 RSpec旨在明确目标代码是否行为正确换句话说遵循规范。

回到之前的Hello World代码。打开文本编辑器并添加以下代码-

class HelloWorld

   def say_hello 
      "Hello World!"
   end
   
end

describe HelloWorld do 
   context “When testing the HelloWorld class” do 
      
      it "should say 'Hello World' when we call the say_hello method" do 
         hw = HelloWorld.new 
         message = hw.say_hello 
         expect(message).to eq "Hello World!"
      end
      
   end
end

接下来,将其保存到上面创建的spec文件夹中名为hello_world_spec.rb的文件中。现在回到您的cmd.exe窗口,运行以下命令-

rspec spec spec\hello_world_spec.rb

命令完成后,您应该看到如下所示的输出:

Finished in 0.002 seconds (files took 0.11101 seconds to load) 
1 example, 0 failures

恭喜,您刚刚创建并运行了您的第一个RSpec单元测试!

在下一节中,无涯教程将继续讨论RSpec文件的语法。

参考链接

https://www.learnfk.com/rspec/rspec-introduction.html

标签:BDD,教程,无涯,rspec,RSpec,Ruby,spec,gem
From: https://blog.51cto.com/u_14033984/8464716

相关文章

  • 无涯教程-D语言 - 封装
    封装是一种面向对象的编程概念,它将数据和将数据操作在一起的函数绑定在一起,并且可以确保不受外界干扰,封装导致了数据隐藏的重要OOP概念。一个类可以包含private,protected和public修饰符,默认情况下,类中定义的所有项目都是private私有的。如-classBox{public:......
  • 无涯教程-D语言 - 继承
    面向对象编程中最重要的概念之一是继承,继承允许使用一个类继承另一个类,这样就可以直接调用父类的公共函数或变量,这使得维护变得更加容易。基类和子类子类通过":"冒号来实现继承基类。classderived-class:base-class考虑如下基类Shape及其派生类Rectangle-importstd.s......
  • 香橙派3b无屏幕ssh连接教程
    作为小白的我这几天买了个香橙派3b经过这几天的折腾,终于进入了ssh终端(大喜 我买的是官店的8G,创客价299,连着一起买了一个闪迪的64gTF卡 简单总结一下搭建过程:物理准备:一台电脑,香橙派与一张16G以上的tf卡,tf读卡器(一般会送)一根网线,type-c线第一步:烧录ubuntu系统到tf卡上......
  • 无涯教程-D语言 - 类和对象
    类(Class)类可以看成是创建Java对象的模板,中的数据和函数称为该类的成员。类定义类定义以关键字class开头,后跟类名,类定义之后必须是分号或声明列表,如,我们使用关键字class定义Box数据类型,如下所示-classBox{public:doublelength;//box的长度doubl......
  • 无涯教程-D语言 - 异常处理
    Exception异常是在程序执行期间出现的问题,异常提供了一种将控制权从程序的一部分转移到另一部分的方法。D异常处理基于三个关键字try,catch和throw。throw   - 出现问题时,程序将引发异常。这是通过throw关键字完成的。catch   -  catch关键字用于捕获......
  • 无涯教程-D语言 - 并发
    并发使程序在多个线程上运行,一个示例是Web服务器同时响应多个客户端,并发通过消息传递很容易,但是它们基于数据共享则很难编写。启动线程函数spawn()将指针作为参数,并从该函数启动新线程,该函数执行的任何操作,包括它可能调用的其他函数,都将在新线程上执行。importstd.stdio;im......
  • 磁力搜索引擎大全教程,如何使用磁力链接。
      磁力链接是一种特殊的下载链接,磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远的磁力链接下载成功的几率越小,因为持有该资源的节点越少。一......
  • 无涯教程-D语言 - 文件I/O
    文件File由std.stdio模块的File结构表示,文件表示字节序列,无论是文本文件还是二进制文件都没有关系,D编程语言提供对高级函数的访问/处理存储设备上文件。打开文件首先通过指定文件名和所需的访问权限来打开文件。Filefile=File(filepath,"mode");在这里,filename是字符串......
  • 无涯教程-D语言 - 不可变(Immutables)
    我们经常使用可变的变量,但是在很多情况下不需要可变性。D的不变性概念由const和immutable关键字表示,尽管这两个词本身的含义很接近,但它们在程序中的职责有所不同,有时是不兼容的。枚举常量枚举常量使将常量值与有意义的名称相关联成为可能,一个简单的如下所示。importstd.stdi......
  • Windos操作系统下的Zookeeper安装图文教程
    凯哥已经准备好最新版本3.9.1且已经配置好了。既获取到配置好的。获取到凯哥准备的安装后,只需要修改一下配置。将解压包解压后,找到conf文件,里面有个zoo.cfg配置文件。如下图:下载后conf文件夹内容打开zoo.cfg配置文件后,找到13、14这两行。将dataDir和dataLogDir的路径修改成自......