Rails -RSpec -Разница между let и let!

Я читал, что руководство RSpec говорит о разнице, но некоторые вещи все еще сбивают с толку. Любой другой источник, включая «Книгу RSpec», объясняет только «let», а «The Rails 3 Way» так же сбивает с толку, как и руководство.

Я понимаю, что "let" оценивается только при вызове и сохраняет одно и то же значение в пределах области видимости. Таким образом, имеет смысл, что в первом примере в руководстве первый тест проходит успешно, так как "let" вызывается только один раз, а второй тест проходит, поскольку он добавляется к значению первого теста (который оценивался один раз в первом тесте и имеет значение 1 ).

После этого, так как «пусть!» оценивает при определении и снова при вызове, не должен ли тест завершиться ошибкой, поскольку «count.should eq (1 )» вместо этого должен быть «count.should eq (2 )»?

Будем признательны за любую помощь.

39
задан Nakilon 24 October 2014 в 10:52
поделиться