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 ()을 사용하는 것이 좋습니다.