Acabei de encontrar um teste de controlador RSpec que começou File.stat
assim:
File.stub(:stat).with('some/shizzle.txt').and_return(mock_file)
Isso foi um problema, porque em outro lugar na mesma ação do controlador, eu precisava usar o unstubbed File.stat
com outros arquivos. A solução é muito simples:
File.stub(:stat).and_call_original
File.stub(:stat).with('some/shizzle.txt').and_return(mock_file)
Agora, todas as chamadas para File.stat
se comportarão normalmente, a menos que o nome do arquivo seja some/file.txt
; nesse caso, você obterá a simulação!