RSpec - Harapan

Apabila anda belajar RSpec, anda boleh membaca banyak tentang jangkaan dan mungkin sedikit mengelirukan pada mulanya. Terdapat dua butiran utama yang perlu anda ingat apabila anda melihat istilah Harapan -

  • Harapan hanyalah pernyataan dalam blok yang menggunakan kaedah expect () . Itu sahaja. Ia tidak lebih rumit daripada itu. Apabila anda mempunyai kod seperti ini: mengharapkan (1 + 1). Untuk eq (2) , anda mempunyai Harapan dalam contoh anda. Anda menjangkakan bahawa ungkapan 1 + 1 menilai kepada 2 . Perkataan itu penting walaupun sejak RSpec adalah rangka kerja ujian BDD. Dengan memanggil pernyataan ini Harapan, jelas bahawa kod RSpec anda menggambarkan "tingkah laku" dari kod yang ia uji. Idea ini ialah anda menyatakan bagaimana kod itu harus berkelakuan, dengan cara yang berbunyi seperti dokumentasi.

  • Sintaks Harapan agak baru. Sebelum kaedah jangkaan () diperkenalkan (kembali pada tahun 2012), RSpec menggunakan sintaks yang berbeza berdasarkan kaedah seharusnya () . Ramalan di atas ditulis seperti ini dalam sintaks lama: (1 + 1) .sekiranya eq (2) .

Anda mungkin menemui sintaks RSpec lama untuk Jangkaan apabila bekerja dengan kod lama yang lebih lama atau versi lama RSpec. Jika anda menggunakan sintaks lama dengan versi baru RSpec, anda akan melihat amaran.

Sebagai contoh, dengan kod 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

Apabila anda menjalankannya, anda akan mendapat output yang kelihatan 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 anda dikehendaki menggunakan sintaks lama, sangat disyorkan bahawa anda menggunakan jangkaan () dan bukannya harus ().