Имеют две переменные в Rspec, обе они являются целыми числами, но в примере (в блоке before) одна из них соответствует собственному значению, другая - nil. Почему?! Никогда не слышал о таком странном поведении rspec.
пытался изменить значение 0 на 1, пытался изменить имя переменной, пытался изменить 'let' на 'let!', Но поведение не изменилось.
Код:
context 'when input contains incorrect symbols' do
let(:counter) { 1 }
let(:mocked_retry_count) { 5 }
before do
allow(described_class).to receive(:gets) {
byebug
counter += 1
counter > mocked_retry_count ? 'Stop the loop' : ['$', (0..9).to_a.sample, '#', '%', '&'].sample
}
described_class.ask_kingdoms
end
end
В выводе byebug я вижу, что
62: let(:counter) { 1 }
63: let(:mocked_retry_count) { 5 }
64: before do
65: allow(described_class).to receive(:gets) {
66: byebug
=> 67: counter += 1
68: counter > mocked_retry_count ? 'Stop the loop' : ['$', (0..9).to_a.sample, '#', '%', '&'].sample
69: }
70: described_class.ask_kingdoms
71: end
(byebug) counter
nil
(byebug) mocked_retry_count
5
В чем принципиальное различие между 'counter' и 'mocked_retry_count'? И как я могу получить мой счетчик в примере?