使用RSpec上传图像在控制器上具有意外的类

问题描述 投票:0回答:1

我在发布请求时遇到RSpec和fixture_file_upload的麻烦。

这里是问题:我正在尝试通过上传发送图像以创建具有图像的类别,但是当图像到达时,它将更改其类类型。

我正在等待进入params[:category][:image]ActionDispatch::Http::UploadedFile,但是我收到的是ActionController::Parameters

我的请求示例:

    context 'when creates a new main category with valid params' do
      let(:category) do
        { category: { name: 'Bolos E bolos',
                      description: 'São bolos sim',
                      locale: 'pt-BR',
                      image: fixture_file_upload('images/test-image.png', 'image/png') } }
      end

      post '/v4/categories' do
        it 'upload image' do
          expect { do_request(category) }.to change { ActiveStorage::Blob.count }.from(0).to(1)
        end
      end
    end

我得到了:

Failure/Error: expect { do_request(category) }.to change { ActiveStorage::Blob.count }.by(1)
       expected `ActiveStorage::Blob.count` to have changed by 1, but was changed by 0 

如何发送图像作为上载并以ActionDispatch::Http::UploadedFile代替ActionController::Parameters的形式在控制器上获取>

我在发布请求时遇到RSpec和Fixture_file_upload的麻烦。这是问题所在:我正在尝试通过上传发送图片以创建包含图片的类别,但是当图片到达时,它会对其进行更改。...

ruby unit-testing ruby-on-rails-5 rspec-rails rails-activestorage
1个回答
0
投票

我无法使您的控制器规格正常运行,但是我设法使等效的请求规格正常运行。我花了45分钟以上的时间无处可去,我认为这是我能做的最好的事情。这似乎有效。 (只需确保在Rails应用的公共文件夹中有一个avatar.jpg。)

© www.soinside.com 2019 - 2024. All rights reserved.