我正在努力遵循这些准则来编写我的规范:更好的规格
在Ruby中,通常使用.method_name
或::method_name
来引用类方法,并使用#method_name
作为实例方法。同样的约定适用于Rails模型属性吗?
例如,我的规范应该这样写吗:
describe ' #exam_code should be unique'
?
我使用这个样式指南https://github.com/bbatsov/rails-style-guide#rspec
describe '#some_attr' do
it 'is required' do
#your spec
end
end
我建议,是的,您应该遵循属性的RoR约定。从这个角度考虑:Rails中的"attribute"只是自动创建访问器方法的一种方便方法。
至于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
我倾向于将方法名称放在description子句中,并将其条件放在it子句中,如下所示:
describe :exam_code do
it "should be unique" do
#spec code here
end
end