Use o depurador ruby ​​ao depurar RSpecs

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-debuggema, se ainda não o fez. Mas provavelmente você não precisa disso. Em seguida, comece rspeccom o -dparâmetro para permitir a depuração e em seu código, basta adicionar debuggerno 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.