[rspec-users] Stubbing calls to the command line

Scott Taylor mailing_lists at railsnewbie.com
Thu Aug 14 03:47:39 EDT 2008


On Aug 14, 2008, at 3:42 AM, Andy Croll wrote:

> I'm using a call to wget to download a large datafile (multiple
> megabytes) having assumed this will be quicker than using open-uri.
>
> How can I spec the behaviour? Ideally I'd also like to not be hitting
> the internet every time I test!
>
> in my_object_spec.rb
>
>  describe ".get_data" do
>    before(:each) do
>      @my_obj = MyObject.create(@valid_attributes)
>    end
>    it "should download the file" do
>      # behaviour goes here
>    end
>  end
>
>
> in my_object.rb:
>
>  def get_data
>      `wget --output-document=#{self.filename} #{self.file_uri}`
>  end

Use Kernel.stub!(:`, "wget..."), and use Kernel.send(:`, "wget")  
instead of literal backticks.

Scott



More information about the rspec-users mailing list