Thanks for the encouragement, Ben. :)
On Thu, Jun 18, 2009 at 1:36 PM, Ben Mabey <b...@benmabey.com> wrote:
>> Then /^I should find "(.+)" in JSON/ do |xpath|
>> json_hash = JSON.parse(@response.body.gsub(/^#{JSON_CALLBACK}\((.*)\)/,
>> '\1'))
>> xmldoc = Nokogiri::XML(json_hash.to_xml)
>> xpath.gsub!('_', '-') # in XML, underscores will be dashes.
>> xpath = "./hash" + xpath unless xpath =~ /^\/\//
>> assert !xmldoc.xpath(xpath).blank?
>> end
>>
>
> I probably would of done this in RSpec instead of Cucumber. Then I would
> manually tested in a browser.. since you are going to want to do that
> anyways. I take this stance quite a bit as I feel adding Selenium (or
> another automated browser solution) can potentially add much more of a
> maintenance burden than webrat in :rails mode.
In this particular project, all the JS is written by my partner (I'm
completely JS-clueless). Having a bunch of lines in my cucumber tests
validating everything that should be in the JSON structure my
controllers generate in order for the JS to work (and I have a lot of
them) is the best way for me to be able to tell if I've broken
something (and if I have, in what way I broke it). If the page doesn't
work, I will likely have difficulty figuring out why - unless Cucumber
is there to tell me it didn't find "/response/statusCode" in the JSON
like it should have, then I know what to fix. :)
Though I suppose there's probably no reason RSpec couldn't have done
the same thing. I haven't used it yet in this project.
--
Bill Kocik
http://bkocik.net
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users