RSpec - 简介

RSpec是Ruby编程语言的单元测试框架. RSpec与传统的xUnit框架(如JUnit)不同,因为RSpec是一种行为驱动的开发工具.这意味着,用RSpec编写的测试关注的是被测试应用程序的"行为". RSpec没有强调应用程序如何工作,而是强调它的行为方式,换句话说,应用程序实际上做了什么.

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

您应该有一个已安装的从属宝石列表,这些是rspec 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 gem.

Hello World

首先,让我们创建一个用于存储RSpec文件的目录(文件夹).在cmd.exe窗口中,键入以下 :

cd \

然后键入 :

mkdir rspec_tutorial

最后,键入 :

cd rspec_tutorial

从这里,我们'打算创建另一个名为spec的目录,输入 :

mkdir spec

我们将把RSpec文件存储在这个文件夹中. RSpec文件称为"规格".如果这看起来让您感到困惑,您可以将spec文件视为测试文件. RSpec使用术语"spec",它是"规范"的缩写形式.

因为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

接下来,将其保存到名为hello_world_spec.rb的文件中您在上面创建的spec文件夹.现在回到你的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文件的语法.