rails敏捷開發(fā)《3》

rails敏捷開發(fā)《3》

ID:21135161

大?。?42.50 KB

頁數(shù):58頁

時(shí)間:2018-10-19

rails敏捷開發(fā)《3》_第1頁
rails敏捷開發(fā)《3》_第2頁
rails敏捷開發(fā)《3》_第3頁
rails敏捷開發(fā)《3》_第4頁
rails敏捷開發(fā)《3》_第5頁
資源描述:

《rails敏捷開發(fā)《3》》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、.14.4應(yīng)用程序的集成測(cè)試IntegrationTestingofApplications下一個(gè)層面的測(cè)試是要驗(yàn)證應(yīng)用程序的工作流程。在某種意義上,這就是在測(cè)試客戶交給我們的用戶故事——我們正是根據(jù)這些故事來開發(fā)應(yīng)用程序的。譬如說,有這樣一個(gè)故事:“用戶進(jìn)入商店首頁。用戶選擇一件貨品,將其放入購物車。用戶結(jié)賬,在表單中填入詳細(xì)信息。用戶提交表單之后,數(shù)據(jù)庫中創(chuàng)建一份訂單,其中包含用戶詳細(xì)信息,以及與購物車中所有貨品對(duì)應(yīng)的訂單項(xiàng)?!边@正是集成測(cè)試的理想材料。集成測(cè)試需要模擬一個(gè)或多個(gè)虛擬用戶與應(yīng)用程序之間的一組連續(xù)的會(huì)話,你可以在其中

2、發(fā)送請(qǐng)求、監(jiān)控應(yīng)答、跟蹤重定向,等等。當(dāng)創(chuàng)建模型,控制器的同時(shí),Rails就會(huì)創(chuàng)建對(duì)應(yīng)的單元測(cè)試/功能測(cè)試。集成測(cè)試卻不是自動(dòng)創(chuàng)建的,你需要自己動(dòng)手來創(chuàng)建它們。depot>rubyscript/generateintegration_testuser_storiesexiststest/integration/createtest/integration/user_stories_test.rb可以看到,Rails自動(dòng)地給測(cè)試文件的名稱加上了_test后綴。現(xiàn)在來看看這個(gè)生成的文件。require"#{File.dirname(__F

3、ILE__)}/../test_helper"classUserStoriesTest

4、es:products跟單元測(cè)試和功能測(cè)試一樣,這里的測(cè)試方法名也應(yīng)該以test一開頭。deftest_buying_a_product#...end當(dāng)測(cè)試結(jié)束時(shí),我們期望orders表中新增一份訂單數(shù)據(jù)、line_items表中新增了一份訂單項(xiàng)數(shù)據(jù),因此在測(cè)試開始之前應(yīng)首先將它們清除掉。另外,由于會(huì)經(jīng)常使用ruby_book這項(xiàng)夾具數(shù)據(jù),我們首先將它放入一個(gè)局部變量中。depot_r/test/integration/user_stories_test.rbLineItem.delete_allOrder.delete_allrub

5、y_book=products(:ruby_book)我們先來搞定用戶故事中的第一句話:“用戶進(jìn)入商店首頁”。depot_r/test/integration/user_stories_test.rbget"/store/index"assert_response:successassert_template"index"..14.4應(yīng)用程序的集成測(cè)試IntegrationTestingofApplications下一個(gè)層面的測(cè)試是要驗(yàn)證應(yīng)用程序的工作流程。在某種意義上,這就是在測(cè)試客戶交給我們的用戶故事——我們正是根據(jù)這些故事來開發(fā)

6、應(yīng)用程序的。譬如說,有這樣一個(gè)故事:“用戶進(jìn)入商店首頁。用戶選擇一件貨品,將其放入購物車。用戶結(jié)賬,在表單中填入詳細(xì)信息。用戶提交表單之后,數(shù)據(jù)庫中創(chuàng)建一份訂單,其中包含用戶詳細(xì)信息,以及與購物車中所有貨品對(duì)應(yīng)的訂單項(xiàng)?!边@正是集成測(cè)試的理想材料。集成測(cè)試需要模擬一個(gè)或多個(gè)虛擬用戶與應(yīng)用程序之間的一組連續(xù)的會(huì)話,你可以在其中發(fā)送請(qǐng)求、監(jiān)控應(yīng)答、跟蹤重定向,等等。當(dāng)創(chuàng)建模型,控制器的同時(shí),Rails就會(huì)創(chuàng)建對(duì)應(yīng)的單元測(cè)試/功能測(cè)試。集成測(cè)試卻不是自動(dòng)創(chuàng)建的,你需要自己動(dòng)手來創(chuàng)建它們。depot>rubyscript/generatein

7、tegration_testuser_storiesexiststest/integration/createtest/integration/user_stories_test.rb可以看到,Rails自動(dòng)地給測(cè)試文件的名稱加上了_test后綴?,F(xiàn)在來看看這個(gè)生成的文件。require"#{File.dirname(__FILE__)}/../test_helper"classUserStoriesTest

8、thiswithyourrealtests.deftest_truthasserttrueendend看起來有些像功能測(cè)試,不過測(cè)試類繼承了IntegrationTest類。下面就來動(dòng)手編寫針對(duì)上述故事的測(cè)試。由于在故事

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。