2012-06-20 10 views
6

Sinatraでは、some_object.class.name == "Hash"をテストできました。さて、提出後、私は+ = "ActiveSupport :: HashWithIndifferentAccess"を加えてテストしなければなりません。それはなぜですか?その比較が行われる場所をすべて更新する必要がありますか、それとも簡単な方法ですか?おかげActiveSupport::HashWithIndifferentAccess上のドキュメントからハッシュタイプ用のRailsテスト

答えて

15

このクラスは、怪しげな意味を持っているし、人々がのparamsを書くことができるように、我々はそれを持っている[:キー]の代わりのparamsの[「キー」]、彼らは同じことを得ます両方のキーの値。

だから、それはあなたがキーとして記号や文字列を渡すと、どちらかのために同じ値を返すことができるようにハッシュを継承するクラスです。

あなただけの次を使用することができ、修正(およびクリーンアップ)テストをするには:それはハッシュまたはハッシュの子孫だ場合

some_object.is_a? Hash 

これはtrueを返します。

+0

素晴らしい、ありがとう! – dt1000

関連する問題