Учебники

RSpec — ожидания

Когда вы изучаете RSpec, вы можете много читать об ожиданиях, и это может сначала немного запутать. Есть две основные детали, которые вы должны иметь в виду, когда видите термин «ожидание»:

  • Ожидание — это просто оператор в блоке it, который использует метод wait () . Вот и все. Это не сложнее, чем это. Когда у вас есть код, подобный этому: ожидайте (1 + 1). К уравнению (2) , у вас есть ожидание в вашем примере. Вы ожидаете, что выражение 1 + 1 оценивается как 2 . Хотя формулировка важна, поскольку RSpec является тестовой средой BDD. Называя это утверждение ожиданием, становится ясно, что ваш код RSpec описывает «поведение» кода, который он тестирует. Идея состоит в том, что вы выражаете, как должен вести себя код таким образом, который читается как документация.

  • Синтаксис ожидания является относительно новым. До того, как был введен метод wait () (еще в 2012 году), RSpec использовал другой синтаксис, основанный на методе must () . Вышеуказанное ожидание записывается так в старом синтаксисе: (1 + 1) .should eq (2) .

Ожидание — это просто оператор в блоке it, который использует метод wait () . Вот и все. Это не сложнее, чем это. Когда у вас есть код, подобный этому: ожидайте (1 + 1). К уравнению (2) , у вас есть ожидание в вашем примере. Вы ожидаете, что выражение 1 + 1 оценивается как 2 . Хотя формулировка важна, поскольку RSpec является тестовой средой BDD. Называя это утверждение ожиданием, становится ясно, что ваш код RSpec описывает «поведение» кода, который он тестирует. Идея состоит в том, что вы выражаете, как должен вести себя код таким образом, который читается как документация.

Синтаксис ожидания является относительно новым. До того, как был введен метод wait () (еще в 2012 году), RSpec использовал другой синтаксис, основанный на методе must () . Вышеуказанное ожидание записывается так в старом синтаксисе: (1 + 1) .should eq (2) .

Вы можете столкнуться со старым синтаксисом RSpec для Ожиданий при работе со старым кодом или более старой версией RSpec. Если вы используете старый синтаксис с новой версией RSpec, вы увидите предупреждение.

Например, с этим кодом —

RSpec.describe "An RSpec file that uses the old syntax" do
   it 'you should see a warning when you run this Example' do 
      (1 + 1).should eq(2) 
   end 
end

Когда вы запустите его, вы получите вывод, который выглядит следующим образом —

. Deprecation Warnings:

Using `should` from rspec-expectations' old `:should` 
   syntax without explicitly enabling the syntax is deprecated. 
   Use the new `:expect` syntax or explicitly enable 
	
`:should` with `config.expect_with( :rspec) { |c| c.syntax = :should }`
   instead. Called from C:/rspec_tutorial/spec/old_expectation.rb:3 :in 
   `block (2 levels) in <top (required)>'.

If you need more of the backtrace for any of these deprecations to
   identify where to make the necessary changes, you can configure 
`config.raise_errors_for_deprecations!`, and it will turn the deprecation 
   warnings into errors, giving you the full backtrace.

1 deprecation warning total 
Finished in 0.001 seconds (files took 0.11201 seconds to load) 
1 example, 0 failures

Если от вас не требуется использовать старый синтаксис, настоятельно рекомендуется использовать функцию ожидаем () вместо необходимости ().