Hi

I'm building a small library to use in my Rails app which interacts with a 
3rd party API. It fetches artists and tracks.

So I have:
lib/my_lib.rb
lib/my_lib/artist.rb
lib/my_lib/track.rb

To get an artist I do
artist = MyLib::Artist.find("Oasis")
Which returns an instance of Artist if it finds (via 3rd party API) it or 
nil otherwise.

Then I can call artist.tracks which fetches all available tracks at the 3rd 
party and returns them as an array.

In my artist class I have a separate method that makes the actual API calls 
and parses the XML response with Nokogiri

def self.find(name: nil)
  # Stuff...
  doc = get_data(some_url)
  # More stuff...
end

def get_data(req_url)
  Nokogiri::XML(open(req_url))
end

When writing my tests I don't want to hit the actual URL but instead load 
an XML file from disk.

I'm using Minitest which has a mocking library, but how do I actually mock 
(or is it more appropriate to stub?) the method?

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/a2e63640-ac9a-4114-a949-7a8caaab7468%40googlegroups.com?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to