“it”关键字在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
它不是Ruby关键字,它是Rspec框架的一部分。
it
包含说明正在定义的行为方面的代码示例。 它由两个主要部分组成:描述字符串和代码示例,在do / end块中。
我认为其他答案可以更加明确,最初让你感到困惑的是, it
打破了大多数方法命名的常规约定(例如,方法没有描述它的作用),以便代码作为一个整体读作一种句子。
因此,库不仅仅是创建一组测试,而是试图鼓励您通过类似于人类可读规范的方式来描述您的应用程序。
它不是关键字。 这只是RSpec提供的用于描述规范样本的方法。 有关进一步说明,请参阅文档 。
在一般的unit testing意义上, 我们使用describe来描述类的行为 :
describe Hash do end
测试是使用it块编写的 。 这是一个如何编写Hash类规范的示例:
describe Hash do it "should return a blank instance" do Hash.new.should == {} end end
如需更多帮助,请使用它
这是Rspec的关键词。 RSpec使用“describe”和“it”这样的词语,因此我们可以像对话一样表达概念:
“在首次开通时描述一个帐户。” “它的余额为零。” describe方法创建一个示例组。 在传递给描述的块中,您可以使用describe或context方法声明嵌套组,或者可以使用它声明示例或指定方法。
在幕后,示例组是一个类,其中传递给描述或上下文的块被评估。 传递给它的块在该类的实例的上下文中进行评估。
它不是关键字。 传递给它的块在该类的实例的上下文中进行评估。
正如其他人所说, it
不是关键词。
话虽这么说,很多看似关键字的词都不是关键词。 例如, puts
看起来像一个关键字,但它只是Kernel
模块中的一个方法。