2009-06-30 2 views
1

完全に間違って私はhundereds同様のerros(ない障害)このRailsのユニットテストは

得たものと私のコードで起こったが、知らない:ちょうど

NameError: uninitialized constant ActiveSupport::Callbacks::Callback::NORMAL 

そして、私のテスト機能を今でも役に立たないと思っています。

should "failed" do 
    assert false 
end 

それでも、渡されたアイデアはありますか?

ありがとうございました

+0

でなければなりません。また、標準のRailsメソッドではなく、shoulda GEMが必要であることに注意してください。 –

答えて

0

問題が解決しました。

どうもありがとうございます。

問題は、私はモデルで検証

validates_presence_of :time_purchased,   :if => "self.usage_type == NORMAL" 

NORMALが、私はこの中で、チェックしたいタイプの文字列で見つかった初期化されていない一定のactivesupportの::コールバック::コールバック:: NORMAL

ですエラー、それは本当に混乱している、私はActiveSupportで何か間違っていると信じさせる。

正しいものは、完全なスタックトレースを投稿してください

validates_presence_of :time_purchased,   :if => "self.usage_type == 'NORMAL'" 
+0

Ruby(またはライブラリの1つ)がeval()関数を通じて "self.usage_type == NORMAL"を置くので、混乱が起こります。実際には文字列を実行するので、NORMALという名前の定数が検索されます。 ActiveSupport :: Callback :: Callbackは、Rubyが現在のコンテキスト内で定数を見つけることを期待している最初の場所です。 –

+1

このチェックを保護されたメソッドに入れ、そのメソッド(シンボル)の名前だけを ":if"に与えることを強くお勧めします。また、あなたの答えがあなたの質問に答えることを印しておくべきです。 – mislav

+0

マイクとmislavありがとう、はい、それは、NORMALという名前の定数を探しています、それは混乱しています。 Re:mislav、私は48時間待ってから、自分の答えを補う必要があります。 –

関連する問題