Ao escrever testes RSpec, eu me pego escrevendo uma grande quantidade de código parecido com este para garantir que um método foi chamado durante a execução de um teste (para fins de argumentação, digamos que não posso realmente interrogar o estado do objeto após a chamada porque a operação que o método executa não é fácil de ver o efeito).
describe "#foo"
it "should call 'bar' with appropriate arguments" do
called_bar = false
subject.stub(:bar).with("an argument I want") { called_bar = true }
subject.foo
expect(called_bar).to be_true
end
end
O que eu quero saber é: existe uma sintaxe melhor disponível do que esta? Estou perdendo alguma grandiosidade funky RSpec que reduziria o código acima a algumas linhas? should_receive
parece que deveria fazer isso, mas lendo mais parece que não é exatamente o que faz.
should_receive
, então pensei que essa pergunta ajudaria.