Rails测试《三》功能测试functional test

发布时间:2020-06-16 21:46:36 作者:virusswb
来源:网络 阅读:909

功能测试functional test

在rails中,针对单个controller中的各个action进行的测试,叫做功能测试。controller处理web的请求,将请求的响应render到view中。

 

功能测试包括的内容

 

功能测试分解

在使用rails g scaffold post或者rails g controller命令之后,会创建PostsController对应的功能测试文件test/functional/posts_controller_test.rb 。

  1. require 'test_helper' 
  2.  
  3. class PostsControllerTest < ActionController::TestCase 
  4.   test "should get index" do 
  5.     get :index 
  6.     assert_response :success 
  7. assert_not_nil assigns(:posts)
  8.   end 
  9.  
  10. end 

上面的test针对postscontroller的index。使用http的get方法访问这个index,然后断言响应成功,并且分配一个有效的posts变量。

get方法发出web request,把结果加载到response中。get方法有四个参数:

 

  1. get(:show, {'id' => "12"}, {'user_id' => 5}) 

调用show这个action,传入的参数是id=12,session信息是user_id=5。

  1. get(:view, {'id' => '12'}, nil, {'message' => 'booya!'}) 

调用view这个action,传入的参数是id=12,没有session,但是包括一个flash,flash[:message]="booya!"。

 

功能测试中可以使用的请求类型

 

四个hash

在一个请求完成之后,你有四个hash可以使用:

除了assigns以外,其他三个hash都可以通过两种方法来访问hash的值,assigns由于历史原因,和其他三个有一点不一样。

  1. flash["gordon"]               flash[:gordon
  2. session["shmession"]          session[:shmession
  3. cookies["are_good_for_u"]     cookies[:are_good_for_u
  4.   
  5. # Because you can't use assigns[:something] for historical reasons: 
  6. assigns["something"]          assigns(:something

 

三个变量

在functional test中有三个变量可以使用:

 

 

参考文献

1.http://guides.rubyonrails.org/testing.html

推荐阅读:
  1. mycat功能测试简析
  2. 前端技术之:JavaScript测试工具

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

test rails functional test

上一篇:一个开源客服系统-wolive

下一篇:Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》