2011-10-15 1 views
3

私はエラーを取得する特定のページを要求するテスト(ステーキ+カピバラ)を実行している間、私は奇妙な問題が発生しています: undefined method parse for Time:Classテスト環境でTimeクラスの 'parse'を定義することはできますが、開発や生産はできません。

のメソッド呼び出しが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. それは私が(config/environments/test.rbで、テストファイル自体に、など)さまざまな場所でそれを試してみた、そしてそれだけではないん
  2. ハックです作業。

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

答えて

2

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

関連する問題