嗨,我的应用程序中没有任何前端.我愿意发布一个可供不同客户使用的RESTful API.任何指针如何进行黄瓜测试?控制器中的每个操作仅生成XML提要.任何指针或建议?
visit
webrat 的功能接受http_method作为第二个参数.您还可以在以下黄瓜规则中测试您的api:
When /^I restfully delete (?:|the )user "([^\"]*)"$/ do |login| visit(path_to("user \"#{login}\" page"), :delete) end
我认为Webrat不仅仅是你需要的东西.对于XML Feed测试,您不需要像Webrat这样的浏览器模拟器,当您真的没有任何HTML页面时,它会加载页面并分析所有标记(链接,表单等).
你需要像Curl(http://curl.haxx.se)或Curb(在rubyforge上,这是Curl的红宝石绑定)或Patron(在rubyforge上).
这些库可以根据您的喜好制作请求标头(例如,设置Content-Type,选择GET PUT POST DELETE HEAD等)并获得响应,并且可能在需要时遵循302重定向.
返回的响应可以转换为XML对象,可用于Ruby的XML解析器可用于测试输出.此外,您可以编写XMLMapping类(在rubyforge上)将XML输出转换为Ruby对象并测试其属性等.这更清晰,恕我直言.
jayzes已经使用Rack :: Test :: Methods,JSONpath,Nokogiri等分享了他的黄瓜测试步骤示例来编写json/xml API的测试,您可能想要参考并为自己的步骤创建更多.
https://github.com/jayzes/cucumber-api-steps