如何在Ruby / Rails规范中引用属性?

时间:2014-04-10 13:16:28

标签: ruby-on-rails ruby rspec rspec-rails

我试图遵循这些指南来编写我的规范: Better Specs

在Ruby中,使用.method_name::method_name引用类方法是惯例,并使用#method_name作为实例方法。相同的约定是否适用于Rails模型属性?

例如,我的规范应该是这样编写的:

describe ' #exam_code should be unique'

3 个答案:

答案 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