Rails - RSpec - Różnica między „let” a „let!”

Przeczytałem coInstrukcja RSpec mówi o różnicy, ale niektóre rzeczy wciąż są mylące. Każde inne źródło, w tym „The RSpec Book”, wyjaśnia tylko „let”, a „The Rails 3 Way” jest tak samo mylące jak podręcznik.

Rozumiem, że „let” jest oceniany tylko przy wywołaniu i zachowuje tę samą wartość w zakresie. Więc to ma sens, że w pierwszym przykładzie wpodręcznik pierwszy test przechodzi, ponieważ „let” jest wywoływany tylko raz, a drugi test przechodzi, ponieważ zwiększa wartość pierwszego testu (który był oceniany raz w pierwszym teście i ma wartość 1).

Następnie od „niech!” ocenia, gdy jest zdefiniowany, i ponownie, gdy jest wywołany, czy test nie zakończy się niepowodzeniem jako „count.should eq (1)” powinien mieć zamiast „count.should eq (2)”?

Każda pomoc byłaby doceniana.

questionAnswers(6)

yourAnswerToTheQuestion