仅强制严格的RSpec DSL

时间:2014-01-22 11:26:20

标签: ruby rspec

作为一个天真的程序员,我在测试中遇到了这个巨大的错误,我已经活了一段时间:

it_behaves_like 'a Database' do
  def build_content
    # ...
  end
end  

在出现一些随机错误并使用共享规范添加更多测试后,我意识到这样的代码从一开始就错了,正在吃掉一些有价值的测试。应该一直是:

it_behaves_like 'a Database' do
  before :all do
    def build_content
      # ...
    end
  end
end  

在此之后'aha momment'将我对RSpec的了解更进了一步,现在想知道为什么任何人都应该在RSpec DSL名称空间内编写正常的 ruby​​代码,我真的只想知道一件事:

如何在我的规范中强制使用严格的RSpec DSL,在我的begin / let / it块之外制作非法任何随机ruby代码(非RSpec)?

例如,在上面的代码中,函数 build_content()就是我所说的随机ruby代码。第一次在DSL命名空间中声明它,其中只应使用RSpec函数。

0 个答案:

没有答案