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 enddescribe 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 endend
接下来,将其保存到名为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文件的语法.