[rspec-users] Mocking/Faking requests for js/ajax-based tests

Marcelo de Moraes Serpa celoserpa at gmail.com
Fri Jun 18 18:02:22 EDT 2010


Hi David, thanks for the reply,

Hmm, considering we have:
 1) The ruby process where the spec is running
 2) A mongrel server serving request (test environment)

If I call FakeWeb on #1, it won't work on #2, since they are separated
processes and FakeWeb would only monkeypatch Net::HTTP for #1. Or am I
missing something?

Thanks!

Marcelo.

On Fri, Jun 18, 2010 at 1:18 PM, David Chelimsky <dchelimsky at gmail.com>wrote:

> On Jun 18, 2010, at 12:02 PM, Marcelo de Moraes Serpa wrote:
>
> One thing that just came to my mind is to fake the requests on the app
> server instance. One simple way to do that would be to just put the FakeWeb
> call in a cucumber / culerity environment file. However, this is far from
> being elegant and is not scalable at all, as the call would be contextless
> to the spec that needs it.
>
>
> How about putting it in a step/step definition before the call gets made?
>
>
> Any other ideas?
>
> Marcelo.
>
> On Fri, Jun 18, 2010 at 11:46 AM, Marcelo de Moraes Serpa <
> celoserpa at gmail.com> wrote:
>
>> Hello all,
>>
>> I have an acceptance test that aims to bdd a Google Apps OpenID
>> authentication feature. This login screen also uses some JS (in order to
>> switch between the regular / Google OpenID forms). Now, I know this is not
>> something that would prevent me from using the :rack driver for Capybara,
>> but it made me think of the following problem: What to do when you have a
>> JS/Ajax-oriented page that makes web service calls and you need to write an
>> integration/acceptance test for it?
>>
>> The fact that a scenario uses Javascript (Culerity/Selenium/Whatever)
>> means it will need to spawn a different process (Not sure about EnvJS, but I
>> guess it also needs a rails server running? ) for the rails app server. This
>> essentially prevents any mocking/stubbing/faking of requests. I wouldn't
>> want a bunch of acceptance tests that actually make requests to web
>> services, certainly a testing no-no.
>>
>> What do you guys think could be done in these cases? I remember seeing
>> something a long time ago (a lib) that actually tried to solve the problem
>> of mocking while having the two processes open. Or maybe it's too much
>> troube to write integration tests for these kind of features?
>>
>> FYI, I'm using rSpec, Steak and Capybara+Culerity.
>>
>> Marcelo.
>>
>>
>>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100618/da69740e/attachment.html>


More information about the rspec-users mailing list