ハッシュをテストするためにrspecを使用していますが、キーが含まれているかどうかはわかりません。Ruby:メソッドのパラメータの()と[]の相違
response_data = JSON.parse(response.body)['data']
expect(response_data).to have_key('store_id')
expect(response_data).to have_key('store_name')
しかしエラーで、私は、正方形Parentheseのに通常Parentheseのから変更します。
response_data = JSON.parse(response.body)['data']
expect(response_data).to have_key['store_id']
expect(response_data).to have_key['store_name']
それはエラーでデバッグのために私に長い時間がtooks:
NoMethodError: undefined method `[]'
私の質問は:ルビーこの文法については例外をスローしませんが、例外はundefined method
ですので、ルビーが正方形の親子でメソッドを理解する方法が不思議です。
おかげで、あなたは()
を使用するRubyでメソッドを呼び出す
は '[]'と、明確にするために:)働きます '[] = 'は実際に' Array'の2つの別個のメソッドです。http://ruby-doc.org/core-2.2.0/Array.html#method-i-5B-5Dとhttp://ruby-doc.orgを参照してください。 /core-2.2.0/Array.html#method-i-5B-5D-3Dそれぞれ – photoionized
はい、確かに良い点です。私はこの情報を追加します:) – Ursus