欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Rails測試《三》功能測試functionaltest-創(chuàng)新互聯(lián)

功能測試functional test

成都創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供棕樹數(shù)據(jù)中心 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

在rails中,針對單個controller中的各個action進(jìn)行的測試,叫做功能測試。controller處理web的請求,將請求的響應(yīng)render到view中。

功能測試包括的內(nèi)容

  • web請求是否成功?
  • 用戶是否被引導(dǎo)進(jìn)入正確的頁面?
  • 用戶是否成功的驗證?
  • 響應(yīng)的模板中是否包含了正確的內(nèi)容?
  • 在給用戶的view中是否顯示了適當(dāng)?shù)膬?nèi)容?

功能測試分解

在使用rails g scaffold post或者rails g controller命令之后,會創(chuàng)建PostsController對應(yīng)的功能測試文件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,然后斷言響應(yīng)成功,并且分配一個有效的posts變量。

get方法發(fā)出web request,把結(jié)果加載到response中。get方法有四個參數(shù):

  • 你要測試的action,可以是string或者symbol。get "index"或者get :index。
  • 可選的hash格式參數(shù),請求的參數(shù),傳入action的參數(shù)。querystring參數(shù),或者post參數(shù)。
  • 可選的hash格式參數(shù),傳入action的session信息。
  • 可選的hash格式參數(shù),flash信息。

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

調(diào)用show這個action,傳入的參數(shù)是id=12,session信息是user_id=5。

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

調(diào)用view這個action,傳入的參數(shù)是id=12,沒有session,但是包括一個flash,flash[:message]="booya!"。

功能測試中可以使用的請求類型

  • get
  • post
  • put
  • head
  • delete

四個hash

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

  • assigns,在action中返回給view使用的實例變量。
  • cookies,設(shè)置的cookies信息。
  • flash,flash對象。
  • session,session信息。

除了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中有三個變量可以使用:

  • @controller– 處理請求的controller
  • @request– 請求本身
  • @response– 請求的響應(yīng)

參考文獻(xiàn)

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

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

本文標(biāo)題:Rails測試《三》功能測試functionaltest-創(chuàng)新互聯(lián)
本文URL:http://chinadenli.net/article30/gshpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)站制作自適應(yīng)網(wǎng)站品牌網(wǎng)站制作移動網(wǎng)站建設(shè)外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計