On Thu, Aug 14, 2008 at 3:42 AM, Andy Croll <[EMAIL PROTECTED]> 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
>
> I'll be massively grateful for any help anyone can give me.
I might end up with a separate object which managed making the wget
system call, and then I've have an integration-style test which
ensured it correctly downloaded a given passed in URL.
class MyObject
def get_data
WGet.download("http://some/path")
end
end
class WGet
def download(url)
`wget #{url}`
end
end
And I probably wouldn't have a spec for WGet. I might make the
integration-style test a story. Perhaps when it ran I'd start
script/server in test mode, and then copy over a dummy file and pull
it down from "http://localhost:3000/public/dummy".
--
Zach Dennis
http://www.continuousthinking.com
http://www.mutuallyhuman.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users