Rspec-为什么我的规范文件中必须要求active_support

时间:2019-03-06 01:31:16

标签: ruby rspec

我刚开始使用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

我只是想知道为什么规范文件本身需要具有该要求。规范不是只是为了从该函数中获取结果吗?

1 个答案:

答案 0 :(得分:1)

  

规范不是刚开始从该函数中获取结果吗?

或多或少。但是该功能/方法需要blank?。您可以将其放入经过测试的方法的文件中,而不必将其放入规格文件中。

您提到主动支持。这是Rails应用程序吗?如果是这样,则正确的做法是将rails env加载到rails_helper / spec_helper中。 (除非您不是故意这样做,以加快规格或类似的速度)。