RSpec - Expectativas
Quando você aprende RSpec, pode ler muito sobre expectativas e pode ser um pouco confuso no início. Existem dois detalhes principais que você deve ter em mente ao ver o termo Expectativa -
Uma expectativa é simplesmente uma declaração em um it block que usa o expect()método. É isso aí. Não é mais complicado do que isso. Quando você tem um código como este:expect(1 + 1).to eq(2), você tem uma Expectativa em seu exemplo. Você está esperando que a expressão1 + 1 avalia para 2. A formulação é importante, pois RSpec é uma estrutura de teste BDD. Chamando essa declaração de Expectation, fica claro que seu código RSpec está descrevendo o “comportamento” do código que está testando. A ideia é que você esteja expressando como o código deve se comportar, de uma forma que se pareça com documentação.
A sintaxe da expectativa é relativamente nova. Antes de oexpect() método foi introduzido (em 2012), RSpec usava uma sintaxe diferente que era baseada no should()método. A expectativa acima é escrita assim na sintaxe antiga:(1 + 1).should eq(2).
Você pode encontrar a sintaxe RSpec antiga para Expectativas ao trabalhar com um código mais antigo baseado ou uma versão anterior do RSpec. Se você usar a sintaxe antiga com uma nova versão do RSpec, verá um aviso.
Por exemplo, com este código -
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
Ao executá-lo, você obterá uma saída semelhante a esta -
. 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
A menos que seja necessário usar a sintaxe antiga, é altamente recomendável que você use expect () em vez de should ().