Rails - RSpec - Unterschied zwischen "let" und "let!"

Ich habe gelesen was das istRSpec-Handbuch sagt über den Unterschied, aber einige Dinge sind immer noch verwirrend. Jede andere Quelle, einschließlich "The RSpec Book", erklärt nur "let" und "The Rails 3 Way", ist genauso verwirrend wie das Handbuch.

Ich verstehe, dass "let" nur beim Aufrufen ausgewertet wird und denselben Wert innerhalb eines Bereichs beibehält. Es macht also Sinn, dass im ersten Beispiel in derHandbuch Der erste Test wird bestanden, wenn "let" nur einmal aufgerufen wird, und der zweite Test wird bestanden, wenn der Wert des ersten Tests erhöht wird (der im ersten Test einmal ausgewertet wurde und den Wert 1 hat).

Danach, seit "let!" Wird ausgewertet, wenn der Test definiert und erneut aufgerufen wird. Sollte er nicht fehlschlagen, da "count.should eq (1)" stattdessen "count.should eq (2)" lauten sollte.

Jede Hilfe wäre dankbar.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage