puts
выполняется, когда rspec обрабатывает ваш файл, а не в связи с выполняемыми тестами. Чтобы доказать это себе, вы можете попробовать сослаться на неопределенную локальную переменную после оператора it
.
Например:
context "example 1" do
puts "hello"
it "example 1 it" do
sleep(50)
end
puts "goodbye" + cruel_world
end
Когда вы запустите rspec, вы увидите «привет», а затем
An error occurred while loading ./spec/your_spec.rb
За ним следует ошибка NameE из ссылки на cruel_world.