[rspec-users] what would be the best way to stub out an XHR request's response?

Adam Sroka adam.sroka at gmail.com
Wed Sep 26 17:36:05 UTC 2012


I would just wrap the method that makes the ajax call and spec it from
Jasmine. Then you can just stub the wrapper to return the data you
want and expect the right thing to happen in the callback method (or
however the data gets stored/displayed.)

On Wed, Sep 26, 2012 at 10:26 AM, Ervin Weber <webervin at gmail.com> wrote:
> You could create some function (say window.GiveMeUrlForAjax) that
> returns uri for ajax request, your test could then easily overwrite
> that function before triggering event to perform ajax. Also you might
> consider creating a function that returns data (in production it would
> take url from "GiveMeUrlForAjax" and do real ajax)" so you could
> "stub" it in unit tests also.
> In my opinion it is good to avoid all "if test?"  statements in
> production code (you always can refactor them all into single config
> file).
>
> On Wed, Sep 26, 2012 at 7:16 PM, Patrick J. Collins
> <patrick at collinatorstudios.com> wrote:
>> If I have a javascript ajax request happening that fetches json data
>> from a remote service, and I want to be running an integration test with
>> rspec-- what would be the best way to stub out that service?
>>
>> The ideas that I've come up is:
>>
>> manually add a route + open up application controller from within my
>> spec and dynamically create an action that returns mock json...  Then
>> make my .js a .js.erb file, and do something like:
>>
>> $.ajax({ url: <%= Rails.env.test? ?
>> "/my_added_route_that_hits_the_controller_method_that_returns_json" :
>> "http://somewebservice.com/feed" %> });
>>
>> Can anyone come up with any better solutions?
>>
>> Patrick J. Collins
>> http://collinatorstudios.com
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users


More information about the rspec-users mailing list