Se você tiver problemas com algumas especificações falhando, basta imprimir algumas variáveis e instruções. Mas às vezes o problema é um pouco mais complicado de ser tratado dessa maneira. Nesse caso, o depurador de rubis poderia ajudar. Aqui está como você pode usá-lo dentro de suas especificações:
Instale a ruby-debug
gema, se ainda não o fez. Mas provavelmente você não precisa disso. Em seguida, comece rspec
com o -d
parâmetro para permitir a depuração e em seu código, basta adicionar debugger
no ponto que deseja definir o ponto de interrupção. É isso aí.
Um exemplo:
# my_test.spec.rb
describe "test me" do
it "does something" do
some_var = "print me"
debugger
false.should be true
end
end
A execução do teste agora abriria uma linha de comando do depurador onde você pode colocar os comandos comuns do ruby-debug, aqui estão alguns, para você começar:
l= # will print the ruby code of the line you are in
# including some lines before and after to give
# more context
p some_var # would print the value of some_var
c # would continue the test as usual
n # would go to the next step
s # would step into the method you are about to call
E aqui você obtém mais informações sobre ruby-debug, incluindo uma lista de todos os comandos disponíveis.