Ich verwende rspec zum Testen eines Hashes enthält einen Schlüssel oder nicht.Ruby: Unterschiede zwischen() und [] in den Methodenparametern
response_data = JSON.parse(response.body)['data']
expect(response_data).to have_key('store_id')
expect(response_data).to have_key('store_name')
aber durch Fehler, die ich ändern von normalen parenthese auf Platz parenthese:
response_data = JSON.parse(response.body)['data']
expect(response_data).to have_key['store_id']
expect(response_data).to have_key['store_name']
Es tooks mich eine lange Zeit für die Fehlersuche mit Fehler:
NoMethodError: undefined method `[]'
Meine Frage ist: Rubin wirft keine Ausnahme über diese Grammatik ist falsch, aber Ausnahme über undefined method
so bin ich neugierig, wie Rubin Methode mit quadratischen Klammern verstehen.
dank
zu klären, '[]' und '[] = 'sind eigentlich zwei getrennte Methoden auf' Array', siehe http://ruby-doc.org/core-2.2.0/Array.html#method-i-5B-5D und http://ruby-doc.org /core-2.2.0/Array.html#method-i-5B-5D-3D bzw. – photoionized
Ja, sicher, aber guter Punkt. Ich werde diese Info hinzufügen :) – Ursus