📜  RSpec-简介

📅  最后修改于: 2020-12-06 10:53:54             🧑  作者: Mango


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需要函数。在输出的末尾,您应该看到如下所示的内容:

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文件被称为“规范”。如果这让您感到困惑,则可以将规格文件视为测试文件。 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文件的语法。