我试图遵循这些指南来编写我的规范: Better Specs
在Ruby中,使用.method_name
或::method_name
引用类方法是惯例,并使用#method_name
作为实例方法。相同的约定是否适用于Rails模型属性?
例如,我的规范应该是这样编写的:
describe ' #exam_code should be unique'
?
答案 0 :(得分:2)
我使用这种风格指南https://github.com/bbatsov/rails-style-guide#rspec
describe '#some_attr' do
it 'is required' do
#your spec
end
end
答案 1 :(得分:1)
我建议,是的,你应该遵循属性的RoR约定。从这个角度考虑一下:Rails中的“属性”只是一种自动创建访问者方法的便捷方式。
至于rspec,我更喜欢上面描述的方法,将属性放在他们自己的描述块中。我通常会这样做:
describe Test do
subject { Test.new(exam_code: exam_code) }
let(:exam_code) { 'test1' }
describe '#exam_code' do
context 'when nil' do
it { should_not be_valid }
end
end
end
答案 2 :(得分:0)
我倾向于将方法名称放在describe子句中,并将其条件放在it子句中,如下所示:
describe :exam_code do
it "should be unique" do
#spec code here
end
end