作为一个天真的程序员,我在测试中遇到了这个巨大的错误,我已经活了一段时间:
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函数。