有时候我看到的rspec看起来像这样:
describe Contact do
...
end
有时候我会这样看:
describe 'Contact' do
...
end
有什么区别?更一般地说,我在哪里可以找到这方面的文档?
答案 0 :(得分:2)
如果您要描述一个特定的类,那么您应该使用常量形式。如果这样做,您将拥有返回该类的described_class
辅助方法。也许在规格中派上用场。
describe Contact do
puts described_class # >> Contact
end
describe "Contact" do
puts described_class # >> nil
end
另外,正如@Santosh所说,不断形式保护你免受类名中的拼写错误的影响。说,你重命名了一个模型,但忘了更新规格。运行规范时会出错。
如果这个spec文件没有集中在一个类上,例如,测试几个东西的集成,那么你自然不会使用常量。因为你没有明确的。
describe "user registration process" do
# integration specs
end
答案 1 :(得分:1)
describe是method
,其中包含argument
和block
以这种方式看待它
describe('Contact', {})
如果Contact
是class
,您可以像编写模型规范一样将其作为parameter
传递。
describe(Contact, {}) # If Contact class doesn't exist, you will get an error