Procurei esta pergunta e não consegui encontrar, ou sua resposta no Stack Overflow, mas encontrei em outro lugar, então estou pedindo para disponibilizá-la no SO.
O framework Rails tem uma função fixture_file_upload
( Rails 2 Rails 3 , Rails 5 ), que irá pesquisar seu diretório de fixtures pelo arquivo especificado e irá disponibilizá-lo como um arquivo de teste para o controlador no teste funcional. Para usá-lo:
1) Coloque seu arquivo a ser carregado no teste no subdiretório de fixtures / files para teste.
2) Em seu teste de unidade, você pode obter seu arquivo de teste chamando fixture_file_upload ('path', 'mime-type').
por exemplo:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) chame o método post para acertar a ação do controlador que você deseja, passando o objeto retornado por fixture_file_upload como parâmetro para o upload.
por exemplo:
post :bookmark, :bulkfile => bulk_json
Ou no Rails 5: post :bookmark, params: {bulkfile: bulk_json}
Isso será executado através do pós-processo simulado usando uma cópia Tempfile do arquivo em seu diretório de fixtures e, em seguida, retornará ao seu teste de unidade para que você possa começar a examinar os resultados da publicação.