当前位置: 传客网 > capybara2.0以后的requests测试变化

capybara2.0以后的requests测试变化

2016-12-30 作者:秋收

     都说学编程就应该写技术Blog,这算是我第一个技术blog吧。

     最近用ruby2.0+rails4.0+latest Gem 重做ruby on rails tutorial,可谓是bug重重,第一个变化是attr_accessible被禁用,转为使用strong params。还好,这个问题遇到的人多,google一下就搞定了,但是今天遇到的capybara2.0gem的变化就头疼了,因为大多数人遇到这个麻烦都选择用旧的版本凑合吧,无论是google还是群里都问不出解决方法,只好自己摸索了。
       
       首先, capybara2.0以后的用户行为测试被放在了features文件夹,features跟requests的区别:
 http://stackoverflow.com/questions/15173946/rspec-what-is-the-difference-between-a-feature-and-a-request-spec

        但是,他们只说了功能如何分离,那ruby on rails tutorial里的测试该怎么改才能用呢?没说,下面说明我找到的方法:
 
1、按上面那篇文章的做法,把原本在requests文件夹里的测试文件都放到features里

2、凡是用到put\get\delete\post这些方法的测试,在requests里新建测试文件,放到这个文件里

3、以我的情况为例,在support/utilities.rb里定义的sign_in方法,原来是这样的:

def sign_in(user)
    visit signin_path
    fill_in "Email", with: user.email
    fill_in "Password", with: user.password
    click_button "Sign in"
    # Sign in when not using Capybara as well.
    cookies[:remember_token] = user.remember_token
end

       因为  visit 和 fill_in方法在requests里已经不能用了,我们需要新建一个方法requests_signin

def requests_signin(user)
    post sessions_path, email: user.email, password: user.password
end

     注意,这里的  sessions_path 会根据你的具体情况有所不同。想知道这里该用什么,需要在终端输入

$ bundle exec rake routes 

     我的显示是这样的:
      Prefix Verb        URI Pattern               Controller#Action
      users GET       /users(.:format)          users#index
            POST         /users(.:format)          users#create
   new_user GET    /users/new(.:format)      users#new
  edit_user GET     /users/:id/edit(.:format)   users#edit
       user GET       /users/:id(.:format)      users#show
            PATCH     /users/:id(.:format)      users#update
            PUT          /users/:id(.:format)      users#update
            DELETE   /users/:id(.:format)      users#destroy
       root GET        /                                    static_pages#home
   sessions POST   /sessions(.:format)       sessions#create
new_session GET    /sessions/new(.:format)   sessions#new
session DELETE     /sessions/:id(.:format)   sessions#destroy
     signup GET      /signup(.:format)         users#new
     signin GET       /signin(.:format)         sessions#new   
 signout DELETE   /signout(.:format)        sessions#destroy
       help GET         /help(.:format)           static_pages#help
      about GET      /about(.:format)          static_pages#about
    contact GET      /contact(.:format)        static_pages#contact

       因为我sign in的目的是创建sessions,而上传email和password验证时要用到POST方法,根据列出的路径,能用这个方法的是sessions,那么路径就是 sessions_path。

4、好了 ,这样我在测试里就能这样用了:

let(:user) { FactoryGirl.create(:user) }
before { requests_signin(user) }
 


相关推荐

  • 版本发布后软件测试人员要做的工作

     摘自:http://www.51testing.com/html/85/n-831985.html版本发布后大部分测试人员的意识里面都会认为该要好好休息一下了,放几天羊,做做其它和已发布版本没有相关的事情。其实版本发布后测试人员还有很多事

  • DT-D导通测试仪

    导通测试仪型号:DT-D名称:导通测试仪、接地引下线导通测试仪、接地导通测试仪标准:DLT475-2006、DLT596-1996说明:DT-D导通测试仪适用于电力设备接地引下线与接地网(或相邻设备)之间导通电阻值的测量,且同样适用于低阻值

  • 《探索式测试》读书笔记六

    基于测程的测试管理-sbtm管理在测试团队中探索式测试的质量和进度,改方法将测试任务分解成一系列的测程,测试人员在测程中完成一个特定测试任务的设计,执行和记录。测程的特点:任务---任务简要描述测试对象,并建议可能的测试策略和潜在的产品缺陷

  • 服务端测试之接口测试初探

    一、什么是接口测试先来看看接口测试的定义:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。如今的

  • EMC测试的标志 EMC实验室的租场测试的详细信息

    EMC测试的标志EMC实验室的租场测试电磁兼容(EMC)是对电子产品在电磁场方面干扰大小(EMI)和抗干扰能力(EMS)的综合评定,是产品质量最重要的指标之一,电磁兼容的测量由测试场地和测试仪器组成。EMC包含两大项:EMI(干扰)和EMS

  • 其他测试类型

    回归测试回归测试指的是软件功能修改后,对软件进行重新测试以确认没有引入新的错误或导致其他部分产生错误。回归测试的重心在关键模块和重点功能组件。​软件研发周期中会进行多次回归测试,且尽量实现自动化。​Monkey测试也

  • 微课教学实验设计———前测试卷测试

    2015年12月21日《组合图形的面积》前测试卷测试为了使实验更具有效性,在实验教学开展之前,我们通过随堂测试的方式,对实验组和对照组进行前侧,试卷如下:《组合图形的面积》的前测试卷班级:姓名:我会做你还记得我们学过哪些图形,它们的面积是如

  • 如何提高测试用例设计的测试覆盖率

      一、测试用例的切面设计  1、功能点切面  2、特定切面  3、隐含切面  (1)、后台功能  (2)、完整业务流程的测试  (3)、某种特定情况下的系统运行  (4)、其它相关系统  (5)、除功能测试外的其它测试类型  二、详细用例

  • 英国卫裤官方网测试,中国销售官方网测试

      英国卫裤官方网测试,中国销售官方网测试-官方认证,厂家授权;官方正品,假一赔十>>>【点击进入英国卫裤官网了解更多】“英国卫裤”自从上市以来,几年内得到了广大消费者的追捧和青睐。英国卫裤良好的使用效果得到了众多男性朋友

  • 预测试卷

    2014淘宝预测试卷推荐店铺最热销星火2014年大学英语六级/CET6级改革新题型试卷真题详解+标准预测(10套优化真题+5套模拟)历年透析及模拟试题翻译听力作文赠书振宇2014年6月最新版大学英语四级试卷(新题型英语四级改革模拟题预测试卷

  • 美国原装ACL-380表面电阻测试仪 ACL-380表面电阻测试仪希欧仪器现货

    美国原装ACL-380表面电阻测试仪ACL-380表面电阻测试仪希欧仪器现货ACL-380表面电阻测试仪既可测量表面阻抗,又可测量对地电阻,量程范围广,从10的3次方欧姆/□到10的12次方欧姆/□,精度为±1/2量

  • 微博同步测试

    微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试微博同步测试

  • Web测试方法分享

      在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从

  • 清华大学中学生标准学术能力测试启动

    2016年11月12日,清华大学在其召开的全国重点中学校长会上公布清华大学将构建科学考试测评体系,其中包括推出中学生标准学术能力测试:将在2017年1月15号举行首次中学生标准能力测试,并且是多次测试,学生可以凭成绩单进行相应申请。消息一出

  • 工业机器人三维重复定位精度测试系统

    应用背景工业机器人在推向市场前,都需要对其重复定位精度进行测试、传统的测量方法是激光跟踪仪,它的价格极其昂贵。高晟LDS-S系列激光位移传感器响应速度快、性价比高。测量方案工业机器人三维重复定位精度测试系统是用于检测工业机器人手臂重复定位精

  • ​引爆悬念  《轩辕剑3手游版》燃情测试12月22日盛大开启

    还有两天,玩家期待已久的燃情测试就要来啦!轩辕剑叁官方正版手游《轩辕剑3手游版》12月22日即将开启首次外部测试,从12月22日起,大家就可在官网及各大安卓游戏平台玩到《轩辕剑3手游版》。测试时间短暂,提前官网预约就有大概率获得测试资格(h

  • 淋雨试验喷头 手持式淋水溅水试验装置【IPX4防水等级测试】

    花洒喷水试验装置用途:   该设备的主要作用是用于电子电工产品、灯具、电柜、电器元件、汽车、摩托车及其零部件等产品在模拟淋雨的气候条件下,对产品的物理以及其它相关性能进行测试。测试后,通过检定来判断产品的性能是否达到要求,以便于产品的设计、

  • 软件测试项目实战

    《软件测试项目实战——技术、流程与管理》封底本书是一本关于测试管理的书,也是一本根据作者从事金融行业的外包项目测试的工作经验整理的技术管理类书籍。本书讲述了大、中型软件测试项目的实施过程,包括从单元测试、单元测试审核和集成测试到后面的功能测

  • 03.测试体系的总体方案图

    三、测试体系的总体方案通过这几年的整理,已经初步构建了从测试体系、测试流程、测试方法论、测试标准等方面涵盖测试管理核心的理论及流程体系基础,在此过程中通过自主研发也诞生了优秀的测试框架,并相应培养了大批优秀的测试人员。总体性的总结一下我们的

  • 软件测试学习第五天

    软件测试报告与测试评价软件测试是在软件开发的过程中,对软件产品进行质量控制,目的是保证软件产品的最终质量。一般来说软件测试应严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试数据进行记录,并根据测试情况撰写测试报告。测

返回
顶部