我在运行测试(Steak + Capybara)时遇到了一个奇怪的问题,该测试请求了我收到错误的某个页面:
undefined method parse for Time:Class
方法调用发生在名为的 Sunspot 文件中type.rb
:
def value_to_utc_time(value)
if value.respond_to?(:utc)
value.utc
elsif value.respond_to?(:new_offset)
value.new_offset
else
begin
Time.parse(value.to_s).utc
rescue ArgumentError
DateTime.parse(value.to_s).new_offset
end
end
end
当我在 中运行我的服务器时RAILS_ENV=test
,我得到了同样的错误。当我在开发中运行服务器时,一切都很好。这似乎表明它不仅仅是我的测试框架,而是整个测试环境都在促进这个错误。
到目前为止,我能在网上找到的关于Time.parse
未定义的唯一信息非常无用,大多数人都说添加require 'time'
将解决问题。
我的问题是双重的:
- 这很骇人听闻
- 我已经在不同的地方(在
config/environments/test.rb
测试文件本身等)尝试过它,但它只是不起作用。
如果有人对发生了什么有任何想法,我欢迎他们!