摘要:集成測(cè)試集成測(cè)試是處于單元測(cè)試和驗(yàn)收測(cè)試之間的測(cè)試。集成測(cè)試目的是驗(yàn)證客戶端與全系統(tǒng)交互,所有單元測(cè)試,以及微觀層面具體代碼的算法邏輯是否都能通過(guò)。集成測(cè)試用來(lái)驗(yàn)證應(yīng)用程序各個(gè)模塊相互關(guān)系,比如若干個(gè)控件之間的行為。
測(cè)試簡(jiǎn)介
測(cè)試是Ember。js框架開(kāi)發(fā)環(huán)節(jié)中很重要的一環(huán)。
現(xiàn)在假設(shè)你正在利用Ember框架開(kāi)發(fā)一個(gè)博客系統(tǒng),這個(gè)系統(tǒng)包含user和post模型,有登錄及創(chuàng)建博客的操作。最后假設(shè)你希望在你的程序里實(shí)現(xiàn)自動(dòng)化測(cè)試。
測(cè)試類型你一共需要下面這3種類型的測(cè)試:
驗(yàn)收測(cè)試Acceptance
單元測(cè)試Unit
集成測(cè)試Integration
驗(yàn)收測(cè)試 Acceptance Tests驗(yàn)收測(cè)試是用來(lái)確保程序流程正確,且各類交互特性符合用戶預(yù)期的測(cè)試。
驗(yàn)收測(cè)試用于確認(rèn)項(xiàng)目基本功能,保證項(xiàng)目核心功能沒(méi)有退化,確保該項(xiàng)目的目標(biāo)得以實(shí)現(xiàn)。測(cè)試應(yīng)用的方式和用戶與應(yīng)用程序的交互方式是一致的(比如填寫表單,點(diǎn)擊按鈕)。
在上述的場(chǎng)景中,可能會(huì)做如下的驗(yàn)收測(cè)試:
用戶可以通過(guò)登錄表單登錄。
用戶可以創(chuàng)建博客。
當(dāng)成功保存一篇博客文章后,程序會(huì)返回博客列表給用戶。
訪客不能訪問(wèn)管理界面。
單元測(cè)試 Unit Tests單元測(cè)試是針對(duì)程序中的最小可測(cè)試單元進(jìn)行的測(cè)試,比如一個(gè)類或者一個(gè)方法。該測(cè)試可以編寫與程序邏輯相對(duì)的語(yǔ)句來(lái)測(cè)試相關(guān)單元
下面是一些單元測(cè)試的具體例子:
用戶姓名是由對(duì)應(yīng)的姓和名組合而成的。
把博客請(qǐng)求數(shù)據(jù)正確序列化轉(zhuǎn)換為一個(gè)博客模型對(duì)象。
正確格式化博客時(shí)間。
集成測(cè)試 Integration Tests集成測(cè)試是處于單元測(cè)試和驗(yàn)收測(cè)試之間的測(cè)試。集成測(cè)試目的是驗(yàn)證客戶端與全系統(tǒng)交互,所有單元測(cè)試,以及微觀層面具體代碼的算法邏輯是否都能通過(guò)。
集成測(cè)試用來(lái)驗(yàn)證應(yīng)用程序各個(gè)模塊相互關(guān)系,比如若干個(gè)UI控件之間的行為。也可以用于確認(rèn)數(shù)據(jù)和動(dòng)作在系統(tǒng)不同的部件中被正確的傳遞和執(zhí)行,同時(shí)在給定假設(shè)條件下,可以提供系統(tǒng)各部件配合運(yùn)行的情況。
我們建議對(duì)每個(gè)組件都進(jìn)行集成測(cè)試,因?yàn)榻M件各個(gè)組件以相同的方式運(yùn)行在系統(tǒng)的上下文中,并且組件之間也有相互影響,包括從模板中渲染組件、接收組件生命周期回調(diào)函數(shù)。
集成測(cè)試示例如下:
用戶姓名和日期正確的顯示在每篇博文上
禁止用戶在標(biāo)題欄內(nèi)輸入超過(guò)50個(gè)字符
當(dāng)提交一個(gè)沒(méi)有標(biāo)題的博客時(shí),顯示紅色提醒并給出需要標(biāo)題的錯(cuò)誤信息
博客列表滾動(dòng)到最頂端顯示最新博客
測(cè)試框架QUnit是本手冊(cè)的默認(rèn)測(cè)試框架,但是Ember.js也支持其他第三方的測(cè)試框架。
如何運(yùn)行測(cè)試在命令行輸入ember test來(lái)運(yùn)行測(cè)試。也可以通過(guò)ember test -server命令,在每次文件改動(dòng)后,重新運(yùn)行測(cè)試。
在本地開(kāi)發(fā)項(xiàng)目的時(shí)候可以通過(guò)訪問(wèn)/tests/index.html來(lái)運(yùn)行你的測(cè)試,前提是你需要使用命令ember server運(yùn)行了你的項(xiàng)目。如果你是使用這種方式有一點(diǎn)需要注意:
通過(guò)ember server運(yùn)行的測(cè)試,是在開(kāi)發(fā)環(huán)境下的測(cè)試,調(diào)用的是開(kāi)發(fā)環(huán)境下的參數(shù)
通過(guò)ember test --server運(yùn)行的測(cè)試,是在測(cè)試環(huán)境下的測(cè)試,調(diào)用的是測(cè)試環(huán)境下的參數(shù),比如加載的依賴也是不同的。因此我們推薦你使用ebmer test --server來(lái)運(yùn)行測(cè)試。
指定測(cè)試使用--filter選項(xiàng)來(lái)指定運(yùn)行部分測(cè)試。比如:快速運(yùn)行當(dāng)前工作的測(cè)試使用命令ember test --filter="dashboard"、運(yùn)行指定類型的測(cè)試使用命令ember test --filter="integration"、可以使用!來(lái)排除驗(yàn)收測(cè)試ember test --filter="!acceptance"。
更多詳細(xì)內(nèi)容請(qǐng)看下面的文章:
測(cè)試簡(jiǎn)介
驗(yàn)收測(cè)試
單元測(cè)試
測(cè)試組件
測(cè)試控制器
測(cè)試路由
測(cè)試模型
2.7.0的文檔直接放在emberjs.ddlisting.com??赡芎罄m(xù)就不放Ember Teach,Ember Teach就主要用于發(fā)布與Ember相關(guān)的文章了。
水平有限,歡迎指正。你也可以直接在https://github.com/emberjschina/emberjs_guides_v2.7.0提交Requests Pull,我們會(huì)以最快時(shí)間審核通過(guò)后更新到本站。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90992.html
摘要:在文件夾內(nèi)創(chuàng)建,內(nèi)容如下創(chuàng)建,內(nèi)容如下使用安裝依賴在的頭部加入調(diào)用命令,同時(shí)在你的默認(rèn)瀏覽器中打開(kāi)。最后,我們更新下,給每個(gè)報(bào)道添加鏈接修改完畢地后,可以在瀏覽器中直接看到結(jié)果。 編者注:我們發(fā)現(xiàn)了有趣的系列文章《30天學(xué)習(xí)30種新技術(shù)》,正在翻譯,一天一篇更新,年終禮包。下面是第19天的內(nèi)容。 到目前為止,我們這一系列文章涉及了Bower、AngularJS、GruntJS、P...
摘要:最近我應(yīng)邀為朋友寫一個(gè),前期在考慮技術(shù)棧的時(shí)候選擇了。眼下第一目標(biāo)是把這個(gè)應(yīng)用寫完,在此過(guò)程中本著打破砂鍋問(wèn)到底的精神,我在網(wǎng)上找到一些很不錯(cuò)的的資源。于是記錄于此本列表正持續(xù)更新中。 最近我應(yīng)邀為朋友寫一個(gè) Web App,前期在考慮技術(shù)棧的時(shí)候選擇了 Rails API+Ember.js。考慮到這個(gè)應(yīng)用的規(guī)模,選擇 Ember.js 或許有點(diǎn)重,但是做公司的項(xiàng)目一直都在用 Angu...
摘要:就沒(méi)必要?jiǎng)优5?,?chuàng)建一個(gè)數(shù)據(jù)庫(kù)了執(zhí)行完后,在目錄下創(chuàng)建一個(gè)程序,自動(dòng)植入到當(dāng)前項(xiàng)目中,訪問(wèn)的和與訪問(wèn)域名端口一致。就沒(méi)必要?jiǎng)优5?,?chuàng)建一個(gè)數(shù)據(jù)庫(kù)了本篇博文將為你介紹如何使用實(shí)現(xiàn)權(quán)限控制,我會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的登錄示例加以說(shuō)明。 文章來(lái)源:http://blog.ddlisting.com 官網(wǎng)對(duì)于登錄、用戶權(quán)限的介紹只有一段簡(jiǎn)單的說(shuō)明,并沒(méi)有詳細(xì)說(shuō)明如何使用service實(shí)現(xiàn)權(quán)限控制。下面...
摘要:創(chuàng)建模型并設(shè)置關(guān)聯(lián)關(guān)聯(lián)關(guān)系設(shè)置模型關(guān)系一個(gè)對(duì)應(yīng)多個(gè),一個(gè)對(duì)應(yīng)多個(gè)。手動(dòng)在中增加關(guān)聯(lián)關(guān)系。并且是實(shí)現(xiàn)了數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,比如一個(gè)對(duì)應(yīng)多個(gè),如下圖。 文章來(lái)源:模型高級(jí)特性,引入模型關(guān)聯(lián)關(guān)系 接著前面五篇: 環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁(yè)面 引入計(jì)算屬性、action、動(dòng)態(tài)內(nèi)容 模型,保存數(shù)據(jù)到數(shù)據(jù)庫(kù) 發(fā)布項(xiàng)目,加入CRUD功能 從服務(wù)器獲取數(shù)據(jù),引入組件 前言 ...
摘要:如果說(shuō)傳統(tǒng)的前端開(kāi)發(fā)是以頁(yè)面為中心來(lái)入手的話,那么現(xiàn)代的應(yīng)用開(kāi)發(fā)就是以狀態(tài)為中心來(lái)著手設(shè)計(jì)和開(kāi)發(fā)的。初步分析路由是怎么管理狀態(tài)的復(fù)雜的話題簡(jiǎn)單說(shuō)在中,應(yīng)用的每一個(gè)可能的狀態(tài)都是通過(guò)體現(xiàn)的。 引子 SPA(單頁(yè)面應(yīng)用)的核心是什么? 自該類型應(yīng)用誕生以來(lái)我最多思考的問(wèn)題就是這個(gè)。現(xiàn)在前端 SPA 框架滿天飛,許多不是框架的也被稱作框架,究竟有什么代表性的層(layer)能讓一個(gè)系統(tǒng)稱得上...
閱讀 1707·2021-10-09 09:44
閱讀 3269·2021-09-27 13:36
閱讀 1527·2021-09-22 15:33
閱讀 1282·2021-09-22 15:23
閱讀 1168·2021-09-06 15:02
閱讀 1706·2019-08-29 16:14
閱讀 2913·2019-08-29 15:26
閱讀 2414·2019-08-28 18:08