如何使用rspec为命令行创建存根

时间:2014-09-19 18:26:00

标签: ruby rspec

我正在测试一个对Youtube-dl二进制文件进行外部调用的gem,此时测试会进行2次调用,一次是获取视频标题,另一次是下载视频:

获得标题:

def get_title
  title = `#{YT_DL} --get-title #{get_url}`
  title.delete("\n")
end

下载视频:

def download_video
  system(YT_DL, '-o', file_path, get_url, '--no-progress')
end 

这是我的测试:

describe Youruby do
include FakeFS::SpecHelpers
let(:video) {Youruby::Youtube.new('uaEJvYWc2ag')}
context 'Youtube'do
  describe 'get' do
    it ".video_title" do
      expect(video.get_title).to eq("FFmpeg-slowmotion.1")
    end
  end

  describe 'download' do
    it ".download_video" do
      FakeFS do
        video.download_video
        File.exists? "#{video.get_title}-#{video.get_id}.mp4"
      end
    end
  end
end

我如何制作此通话的存根?感谢。

1 个答案:

答案 0 :(得分:2)

您可能希望查看允许您存根HTTP请求的Excon或VCR gem。