我刚开始使用rspec编写一些单元测试。
在我的规范文件中,我必须添加行require 'active_support/core_ext'
,因为我运行测试的方法之一使用了blank?
方法。没有它,我会遇到未知方法blank
的错误。
规格如下:
it 'returns error if receives a string as payload' do
expect {ensure_properties([:title], 'ABC')}.to raise_error(MyError)
end
ensure_properties
使用空白,如下所示:
if value.is_a? String and value.blank?
raise_my_error('Something')
end
我只是想知道为什么规范文件本身需要具有该要求。规范不是只是为了从该函数中获取结果吗?
答案 0 :(得分:1)
规范不是刚开始从该函数中获取结果吗?
或多或少。但是该功能/方法需要blank?
。您可以将其放入经过测试的方法的文件中,而不必将其放入规格文件中。
您提到主动支持。这是Rails应用程序吗?如果是这样,则正确的做法是将rails env加载到rails_helper / spec_helper中。 (除非您不是故意这样做,以加快规格或类似的速度)。