У меня есть тест, который немного похож на следующий. Детали не важны, но у меня есть метод, который занимает около 10 секунд, и возвращает некоторые данные, которые я хочу использовать кучу раз в кучу тестов. Данные не будут более свежими - мне нужно только один раз извлечь их. Мое понимание let состоит в том, что оно memoizes, поэтому я ожидал бы следующего, чтобы только вызвать slow_thing один раз. Но я вижу, что это называется так много раз, как я говорю о замедлении. Что я делаю не так?Почему rspec не запоминает это?
describe 'example' do
def slow_thing
puts "CALLING ME!"
sleep(100)
end
let(:slowthing) { slow_thing }
it 'does something slow' do
expect(slowthing).to be_true
end
it 'does another slow thing' do
expect(slowthing).to be_true
end
end
Когда я запускаю тест, я вижу ЗВОНОК МЕНЯ! столько раз, сколько у меня есть утверждения или использовать slowthing.
использование 'ранее (: все)' вместо – bjhaid