Ruby 用rspec描述。何时使用引号?

Ruby 用rspec描述。何时使用引号?,ruby,rspec,Ruby,Rspec,有时我会看到如下的RSpec: describe Contact do ... end describe 'Contact' do ... end 有时我看到他们是这样的: describe Contact do ... end describe 'Contact' do ... end 有什么区别?更一般地说,我在哪里可以找到这方面的文档?如果要描述特定的类,那么应该使用常量形式。如果这样做,您将有descripted\u classhelper方法返回该类。也许在规格上会派上用场 d

有时我会看到如下的RSpec:

describe Contact do
...
end
describe 'Contact' do
...
end
有时我看到他们是这样的:

describe Contact do
...
end
describe 'Contact' do
...
end

有什么区别?更一般地说,我在哪里可以找到这方面的文档?

如果要描述特定的类,那么应该使用常量形式。如果这样做,您将有
descripted\u class
helper方法返回该类。也许在规格上会派上用场

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

descripe是一个
方法
,它接受一个
参数
和一个

这样看吧

 describe('Contact', {})
如果
联系人
,则可以像编写模型规格时一样将其作为
参数
传递

describe(Contact, {}) # If Contact class doesn't exist, you will get an error