2017-03-05 57 views
0

我在我的文本/燈具/文件夾中有一個小圖像文件,我試圖調用外部API。這是一個JPG。我想在我的控制器測試用這種方法來測試它Rails 5文件POST文件作爲Minitest中的正文

test 'post image to external API' do 
    binding.pry 
    image = fixture_file_upload('files/simple_image.jpg', 'image/jpg') 
    post '/api/services/image_processor', params: {body: image} 
    assert_response :success 
    end 

不幸的是,如果我這樣做的結果是無效的請求參數:無效%編碼,這是有道理的,因爲我張貼設置了一個param,而不是身體。

如何將我上傳的文件設置爲請求的主體?我可以用郵遞員發佈文件正文,它工作出色,但我想自動化測試過程。

回答

0

我用這個:

image = fixture_file_upload('files/simple_file.jpg', 'image/jpg', :binary) 
post '/api/services/image_processor', params: image.tempfile, headers: { 'CONTENT-TYPE': 'image/jpg' } 
assert_response :success