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

您应该具有已安装的从属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文件的语法。

点我分享笔记