rSpec与Shoulda混淆

时间:2013-08-13 15:27:41

标签: ruby-on-rails testing rspec shoulda specifications

我开始阅读一本关于rSpec的书,作为测试我的Rails应用程序的基本介绍。我开始编写类似的测试:

it 'is valid with a name' do
  coaster = FactoryGirl.build(:coaster)
  expect(coaster).to be_valid
end

然后有人在Shoulda指出我,现在可以编写如下测试:

it { should validate_presence_of(:name) }

注意:我发现发布的两个测试不一样,只是每种类型的例子。

我需要澄清的是,是否应该替代rSpec或者应该是它的插件吗?

其他人会采用哪种方式? Shoulda测试看起来更简单,更短。

基本上任何想法和评论都会有所帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

通过期待暴露BDD风格,期待更自然的语言断言。首先,请注意期望需求只是对期望值的引用,而对于需要,则正在执行该值。 should样式使用should属性扩展每个对象,该属性在ruby中称为monkey patch。这是一个很好的article,它解释并比较了这两个断言机制。

相关问题