Ruby on rails 使用Rspec测试时绕过视频上传的方法
我正在测试我的应用程序上显示视频的页面。我试图通过绕过视频上传过程或其他方式来加快测试速度 也许我使用FactoryGirl上传文件的方式不正确 使用FactoryGirl,我用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.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:找不到“某物”的处理程序我更新了答案。创建一个双重类型的视频应该很好。