RSpec 简介



RSpec 是 Ruby 编程语言的单元测试框架。RSpec 与传统的 xUnit 框架(如 JUnit)不同,因为它是一个行为驱动开发 (BDD) 工具。这意味着,用 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 版本都可以。

现在让我们安装 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 gem。

Hello World

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

cd \

然后键入 −

mkdir rspec_tutorial

最后,键入 −

cd rspec_tutorial

在这里,我们将创建一个名为 spec 的另一个目录,通过键入以下内容来执行此操作 −

mkdir spec

我们将在该文件夹中存储 RSpec 文件。RSpec 文件称为“规范”(specs)。如果您觉得这令人困惑,您可以将规范文件视为测试文件。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 文件的语法。

广告
© . All rights reserved.