после изменения версии ruby ​​возникает ошибка замороженного объекта

У меня есть код в Ruby 2.7.2, где он работает нормально. но после изменения версии ruby ​​на 3.0.0 он не может изменить ошибку FrozenObject в строке 275. поскольку я проверил $? это замороженный объект в ruby ​​3.0.0, но он не заморожен в ruby ​​2.7.2, так что мне делать? есть ли альтернатива этому.

         272:     it 'returns the exitstatus of the command' do
   273:       allow(subject).to receive(:system)
   274:
=> 275:       allow($?).to receive(:exitstatus) { 42 }
   276:
   277: 
   278:       expect(subject.copy_to('local', 'remote')).to eq(42)
   279:     end

1) xxxxxxxxxx::InstanceSSH#copy_to returns the exitstatus of the command
 Failure/Error: allow($?.exitstatus).to receive(:exitstatus) { 42 }
 
 FrozenError:
   can't modify frozen object: pid 74171 exit 0
 # ./spec/cloudgate/instance_ssh_spec.rb:275:in `block (3 levels) in <top (required)>'
 # /home/lenovo/.rvm/gems/ruby-3.0.0/gems/webmock-3.10.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

Завершено за 114 минут 1 секунду (файлы загружались 1,81 секунды) 1 пример, 1 сбой

0 ответов

Другие вопросы по тегам