Como especificar métodos que saem ou abortam
Eu tenho um método sendo acionado a partir de uma CLI que possui alguns caminhos lógicos que explicitamente saem ou abortam. Descobri que, ao escrever especificações para esse método, o RSpec o marca como falha porque as saídas são exceções. Aqui está um exemplo básico:
def cli_method
if condition
puts "Everything's okay!"
else
puts "GTFO!"
exit
end
end
Eu posso envolver as especificações em um lambda comshould raise_error(SystemExit)
, mas isso desconsidera quaisquer afirmações que ocorram dentro do bloco. Para ser claro: não estou testando a saída em si, mas a lógica que acontece antes dela. Como posso especificar esse tipo de método?