RSpec-기대

RSpec을 배울 때 기대에 대해 많이 읽을 수 있으며 처음에는 약간 혼란 스러울 수 있습니다. 기대치라는 용어를 볼 때 염두에 두어야 할 두 가지 주요 세부 사항이 있습니다.

  • 기대는 단순히 it block 사용하는 expect()방법. 그게 다야. 그것보다 더 복잡하지 않습니다. 다음과 같은 코드가있는 경우 :expect(1 + 1).to eq(2), 당신은 당신의 예에 기대가 있습니다. 당신은 그 표현을 기대하고 있습니다1 + 1 평가하다 2. RSpec은 BDD 테스트 프레임 워크이기 때문에 표현이 중요합니다. 이 진술을 기대치라고 부르면 RSpec 코드가 테스트중인 코드의 "동작"을 설명하고 있음이 분명해집니다. 아이디어는 문서처럼 읽는 방식으로 코드의 동작 방식을 표현하는 것입니다.

  • 기대 구문은 비교적 새로운 것입니다. 전에expect() 메소드가 도입되었고 (2012 년에) RSpec은 다음을 기반으로하는 다른 구문을 사용했습니다. should()방법. 위의 예상은 이전 구문에서 다음과 같이 작성됩니다.(1 + 1).should eq(2).

이전 코드 기반 또는 이전 버전의 RSpec으로 작업 할 때 Expectations에 대한 이전 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

이전 구문을 사용해야하는 경우가 아니라면 should () 대신 expect ()을 사용하는 것이 좋습니다.