RSpec - Oczekiwania
Kiedy uczysz się RSpec, możesz dużo czytać o oczekiwaniach i na początku może to być trochę zagmatwane. Są dwa główne szczegóły, o których należy pamiętać, kiedy zobaczysz termin Oczekiwanie -
Oczekiwanie to po prostu stwierdzenie w pliku it block który używa expect()metoda. Otóż to. To nie jest bardziej skomplikowane. Gdy masz taki kod:expect(1 + 1).to eq(2), masz w swoim przykładzie Oczekiwanie. Spodziewasz się, że wyrażenie1 + 1 ocenia do 2. Sformułowanie jest ważne, ponieważ RSpec jest platformą testową BDD. Nazywając tę instrukcję oczekiwaniem, staje się jasne, że kod RSpec opisuje „zachowanie” testowanego kodu. Chodzi o to, że wyrażasz, jak powinien zachowywać się kod, w sposób przypominający dokumentację.
Składnia oczekiwań jest stosunkowo nowa. Zanimexpect() Metoda została wprowadzona (w 2012 roku), RSpec używał innej składni, która była oparta na should()metoda. Powyższe oczekiwanie jest napisane w taki sposób w starej składni:(1 + 1).should eq(2).
Podczas pracy ze starszym kodem lub starszą wersją RSpec możesz napotkać starą składnię RSpec dla oczekiwań. Jeśli używasz starej składni z nową wersją RSpec, zobaczysz ostrzeżenie.
Na przykład z tym kodem -
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
Po uruchomieniu otrzymasz wynik, który wygląda następująco -
. 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
O ile nie musisz używać starej składni, zdecydowanie zaleca się użycie Expect () zamiast should ().