Я прочитал, что RSpec manual говорит о различии, но некоторые вещи все еще запутывают. Каждый другой источник, в том числе "Книга RSpec", объясняет только "let", а "The Rails 3 Way" так же запутан, как и руководство.
Я понимаю, что "let" оценивается только при вызове и сохраняет одно и то же значение в пределах области. Поэтому имеет смысл, что в первом примере в руководстве первый тест проходит, поскольку "let" вызывается только один раз, а второй тест проходит, поскольку он добавляет к значение первого теста (которое оценивалось один раз в первом тесте и имеет значение 1).
После этого, так как "let!" оценивает, когда определено, и снова при вызове, если тест не сбой, поскольку "count.should eq (1)" должен быть вместо "count.should eq (2)"?
Любая помощь будет оценена.