Rails - RSpec - Diferencia entre "let" y "let!"

He leído lo queManual de RSpec dice acerca de la diferencia, pero algunas cosas siguen siendo confusas. Todas las demás fuentes, incluido "The RSpec Book" solo explican sobre "let", y "The Rails 3 Way" es tan confuso como el manual.

Entiendo que "dejar" solo se evalúa cuando se invoca, y mantiene el mismo valor dentro de un alcance. Así que tiene sentido que en el primer ejemplo en elmanual la primera prueba pasa como "let" se invoca solo una vez, y la segunda prueba pasa a medida que aumenta el valor de la primera prueba (que se evaluó una vez en la primera prueba y tiene el valor de 1).

Siguiendo eso, desde "déjalo!" evalúa cuando se define, y nuevamente cuando se invoca, ¿no debería fallar la prueba como "count.should eq (1)" debería tener en su lugar "count.should eq (2)"?

Cualquier ayuda sería apreciada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta