Ruby on rails 使用Rspec测试时绕过视频上传的方法

Ruby on rails 使用Rspec测试时绕过视频上传的方法,ruby-on-rails,rspec,ruby-on-rails-4,ffmpeg,Ruby On Rails,Rspec,Ruby On Rails 4,Ffmpeg,我正在测试我的应用程序上显示视频的页面。我试图通过绕过视频上传过程或其他方式来加快测试速度 也许我使用FactoryGirl上传文件的方式不正确 使用FactoryGirl,我用 FactoryGirl.define do factory :video do user_id 1 type "Live" title "FooBar" description "Foo bar is the description" video { fixture_file_upload(Rai

我正在测试我的应用程序上显示视频的页面。我试图通过绕过视频上传过程或其他方式来加快测试速度

也许我使用FactoryGirl上传文件的方式不正确

使用FactoryGirl,我用

FactoryGirl.define do
 factory :video do
  user_id 1
  type "Live"
  title "FooBar"
  description "Foo bar is the description"
  video { fixture_file_upload(Rails.root.join('spec', 'files', 'concert.mov'), 'video/mp4') }
 end
end
在请求的规范中,我将视频描述为:

describe "videos page" do

  let(:user) { FactoryGirl.create(:user) }
  let!(:video1) { FactoryGirl.create(:video) }

  before { visit user_video_path(user) }

  it { should have_title(user.name) }
  it { should have_content(user.name) }

  describe "videos" do
    it { should have_content(video1.description) }
  end
end
现在,每次我为这个页面运行测试时,它都会经历文件上传过程,这需要更多的时间。我也在使用FFmpeg

**video.rb (video model)**

validates :video, presence: true
has_attached_file :video, :styles => {
                                      :medium => { :geometry => "640x480", :format => 'mp4' },
                                      :thumb => { :geometry => "470x290#", :format => 'jpg', :time => 10 }
                                     }, 
                          :processors => [:ffmpeg]

当我测试页面时,CLI会像上载视频和观看本地服务器一样完成视频上载过程。

使用某个值覆盖视频属性,该值通过了使用factory创建对象时测试所需的所有验证和要求。对于混凝土类型,可以使用。试试这样的

file = double('file', :size => 0.2.megabytes, :content_type => 'mp4', :original_filename => 'rails')
let!(:video1) { FactoryGirl.create(:video, video => file) }

视频属性的存在是必需的,尽管我随后得到了错误
回形针::AdapterRegistry::NoHandlerError:找不到“某物”的处理程序
我更新了答案。创建一个双重类型的视频应该很好。