RSpec - Harapan

Saat Anda mempelajari RSpec, Anda mungkin membaca banyak tentang ekspektasi dan ini bisa sedikit membingungkan pada awalnya. Ada dua detail utama yang harus Anda ingat ketika Anda melihat istilah Harapan -

  • Ekspektasi hanyalah sebuah pernyataan dalam sebuah it block yang menggunakan expect()metode. Itu dia. Tidak lebih rumit dari itu. Ketika Anda memiliki kode seperti ini:expect(1 + 1).to eq(2), Anda memiliki Ekspektasi dalam teladan Anda. Anda mengharapkan ekspresi itu1 + 1 mengevaluasi ke 2. Kata-kata itu penting meskipun karena RSpec adalah kerangka kerja pengujian BDD. Dengan menyebut pernyataan ini Ekspektasi, jelas bahwa kode RSpec Anda menjelaskan "perilaku" dari kode yang sedang diuji. Idenya adalah Anda mengekspresikan bagaimana kode harus berperilaku, dengan cara yang dibaca seperti dokumentasi.

  • Sintaks Ekspektasi relatif baru. Sebelumexpect() metode diperkenalkan (kembali pada tahun 2012), RSpec menggunakan sintaks berbeda yang didasarkan pada should()metode. Ekspektasi di atas ditulis seperti ini dalam sintaks lama:(1 + 1).should eq(2).

Anda mungkin menemukan sintaks RSpec lama untuk Harapan saat bekerja dengan berbasis kode yang lebih lama atau versi RSpec yang lebih lama. Jika Anda menggunakan sintaks lama dengan versi baru RSpec, Anda akan melihat peringatan.

Misalnya, dengan kode ini -

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

Saat Anda menjalankannya, Anda akan mendapatkan keluaran yang terlihat seperti ini -

. 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

Kecuali jika Anda diharuskan menggunakan sintaks lama, sangat disarankan agar Anda menggunakan expect () daripada should ().