“it”关键字在RSpec中的作用是什么?

时间:2012-01-16 16:56:57

标签: ruby rspec

我正在关注rails3tutorial,在进行一些测试时,我不明白“it”关键字的含义如下:

require 'spec_helper'

describe UsersController do
  render_views

  describe "GET 'new'" do
    it "should be successful" do
      get 'new'
      response.should be_success
    end

    it "should have the right title" do
      get 'new'
      response.should have_selector("title", :content => "Sign up")
    end
  end
end

代码片段来自:http://ruby.railstutorial.org/chapters/filling-in-the-layout#top,列出5.26

5 个答案:

答案 0 :(得分:18)

我认为其他答案可以更加明确,最初让您感到困惑的是it打破了方法命名的大多数常规约定(没有关于方法描述它的作用,例子)为了使代码作为一个整体读作一种句子。

因此,库不仅仅是创建一组测试,而是试图鼓励您通过类似于人类可读规范的方式描述您的应用程序。

答案 1 :(得分:14)

它不是Ruby关键字,它是Rspec framework的一部分。

it包含说明行为方面的代码示例 定义。它由两个主要部分组成:描述字符串和 代码示例,在do / end块中。

答案 2 :(得分:5)

这不是关键字。它只是RSpec提供的用于描述规范样本的方法。有关详细说明,请参阅docs

答案 3 :(得分:2)

在一般的单元测试意义上,我们使用describe来描述类的行为

describe Hash do

end

使用it块编写测试。这是一个如何编写Hash类规范的示例:

describe Hash do
  it "should return a blank instance" do
    Hash.new.should == {}
  end
end

如需更多帮助,请使用

http://blog.teamtreehouse.com/an-introduction-to-rspec

答案 4 :(得分:0)

正如其他人所说,it不是关键字。

话虽如此,很多看似关键字的词语都不是关键词。例如,puts看起来像一个关键字,但它只是Kernel模块中的一种方法。