3

テスト(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'することで問題が解決すると言っています。

これに関する私の問題は2つあります。

  1. それはハッキーです
  2. さまざまな場所(config/environments/test.rbテストファイル自体など)で試しましたが、機能しません。

誰かが何が起こっているのか考えているなら、私は彼らを歓迎します!

4

1 に答える 1

2

私はそれを考え出した!Rails アプリの test ディレクトリに別のファイルが作成されtime.rbたため、テスト環境での Time クラスのメソッド呼び出しは、実際の Time クラスではなく、そのファイルを呼び出していました。このGithubの問題スレッドから、この可能性を確認するためのインスピレーションを得ました

于 2011-10-18T08:40:59.223 に答える