之前我们介绍过,rails的功能测试针对的是controller,测试controller的action是否正确的执行。
测试的内容主要是:
测试请求是否正确。
测试用户是否跳转到正确的页面。
测试用户是否验证成功。
测试响应中是否包含了正确的对象。
测试在view中是否给用户显示了适当的信息。
常用的断言函数
1.assert_response(type, message = nil)
断言响应是否成功,是否是指定的状态码。
assert_response :success代表200,assert_response :redirect代表300-399,assert_response :missing代表404,assert_response :error代表500-599。
assert_response :success
assert_response(200)
2.assert_redirected_to(options = {}, message=nil)
验证跳转是否正确,是否跳转到指定的controller的action。
assert_redirected_to(:controller => "posts", :action => "index")
assert_redirected_to(:controller => "posts", :action => "show")
3.assert_template(expected = nil, message=nil)
断言请求是否呈现了正确的页面。
assert_template "new"
是否呈现了new页面。 assert_template :partial => '_customer', :locals => { :customer => @customer }
是否呈现了customer这个partial,并且加载了变量@customer
assert_template :partial => false 是否没有呈现任何的partial。
4.assert_tag
断言响应的body中是否了指定条件的tag标签。
assert_tag :tag => "div", :attributes => { :id => "div-header" }验证响应的body中是否包含id=d"iv-header"的div标签。
5.assert_no_tag
和assert_tag相反,断言响应的body中是否不包含指定条件的tag。
6.assert_routing
断言route映射是否正确。
def test_should_route_from_signout_to_destroy assert_routing( {:path =>"signout", :method => :delete} , {:controller =>"sessions", :action =>"destroy", :method => :delete} ) end
7.assert_select
断言view中的tag。
assert_select "form"
assert_select "title", "Welcome to my site!"
示例
我们还是拿我的blog项目做示例。
下面是针对sessionscontroller的new这个action的两个简单测试,测试这个action是否返回成功,并且加载了变量user。
require 'test_helper' class SessionsControllerTest < ActionController::TestCase include FactoryGirl::Syntax::Methods def test_should_be_get_new get :new assert_response :success assert_not_nil assigns(@user) end def test_should_be_get_new_status_code get :new assert_response(200) assert_not_nil assigns(:user) end end
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索测试
, action
, controller
, assert
, action 没有跳转
, partial
, python接口测试assert断言
, Action跳转
正确
rails 实战圣经、rails实战、functional test、rails test、rails test auth,以便于您获取更多的相关知识。