Ember 測(cè)試簡(jiǎn)介

2018-01-06 18:06 更新

英文原文:https://guides.emberjs.com/v2.7.0/testing/

測(cè)試簡(jiǎn)介

測(cè)試是Ember。js框架開發(fā)環(huán)節(jié)中很重要的一環(huán)。

現(xiàn)在假設(shè)你正在利用Ember框架開發(fā)一個(gè)博客系統(tǒng),這個(gè)系統(tǒng)包含userpost模型,有登錄及創(chuàng)建博客的操作。最后假設(shè)你希望在你的程序里實(shí)現(xiàn)自動(dòng)化測(cè)試。

測(cè)試類型

你一共需要下面這3種類型的測(cè)試:

  1. 驗(yàn)收測(cè)試Acceptance
  2. 單元測(cè)試Unit
  3. 集成測(cè)試Integration

驗(yàn)收測(cè)試 Acceptance Tests

驗(yàn)收測(cè)試是用來確保程序流程正確,且各類交互特性符合用戶預(yù)期的測(cè)試。

驗(yàn)收測(cè)試用于確認(rèn)項(xiàng)目基本功能,保證項(xiàng)目核心功能沒有退化,確保該項(xiàng)目的目標(biāo)得以實(shí)現(xiàn)。測(cè)試應(yīng)用的方式和用戶與應(yīng)用程序的交互方式是一致的(比如填寫表單,點(diǎn)擊按鈕)。

在上述的場(chǎng)景中,可能會(huì)做如下的驗(yàn)收測(cè)試:

  1. 用戶可以通過登錄表單登錄。
  2. 用戶可以創(chuàng)建博客。
  3. 當(dāng)成功保存一篇博客文章后,程序會(huì)返回博客列表給用戶。
  4. 訪客不能訪問管理界面。

單元測(cè)試 Unit Tests

單元測(cè)試是針對(duì)程序中的最小可測(cè)試單元進(jìn)行的測(cè)試,比如一個(gè)類或者一個(gè)方法。該測(cè)試可以編寫與程序邏輯相對(duì)的語句來測(cè)試相關(guān)單元

下面是一些單元測(cè)試的具體例子:

  1. 用戶姓名是由對(duì)應(yīng)的姓和名組合而成的。
  2. 把博客請(qǐng)求數(shù)據(jù)正確序列化轉(zhuǎn)換為一個(gè)博客模型對(duì)象。
  3. 正確格式化博客時(shí)間。

集成測(cè)試 Integration Tests

集成測(cè)試是處于單元測(cè)試和驗(yàn)收測(cè)試之間的測(cè)試。集成測(cè)試目的是驗(yàn)證客戶端與全系統(tǒng)交互,所有單元測(cè)試,以及微觀層面具體代碼的算法邏輯是否都能通過。

集成測(cè)試用來驗(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è)試示例如下:

  1. 用戶姓名和日期正確的顯示在每篇博文上
  2. 禁止用戶在標(biāo)題欄內(nèi)輸入超過50個(gè)字符
  3. 當(dāng)提交一個(gè)沒有標(biāo)題的博客時(shí),顯示紅色提醒并給出需要標(biāo)題的錯(cuò)誤信息
  4. 博客列表滾動(dòng)到最頂端顯示最新博客

測(cè)試框架

QUnit是本手冊(cè)的默認(rèn)測(cè)試框架,但是Ember.js也支持其他第三方的測(cè)試框架。

如何運(yùn)行測(cè)試

在命令行輸入ember test來運(yùn)行測(cè)試。也可以通過ember test -server命令,在每次文件改動(dòng)后,重新運(yùn)行測(cè)試。

在本地開發(fā)項(xiàng)目的時(shí)候可以通過訪問/tests/index.html來運(yùn)行你的測(cè)試,前提是你需要使用命令ember server運(yùn)行了你的項(xiàng)目。如果你是使用這種方式有一點(diǎn)需要注意:

  • 通過ember server運(yùn)行的測(cè)試,是在開發(fā)環(huán)境下的測(cè)試,調(diào)用的是開發(fā)環(huán)境下的參數(shù)
  • 通過ember test --server運(yùn)行的測(cè)試,是在測(cè)試環(huán)境下的測(cè)試,調(diào)用的是測(cè)試環(huán)境下的參數(shù),比如加載的依賴也是不同的。因此我們推薦你使用ebmer test --server來運(yùn)行測(cè)試。

指定測(cè)試

使用--filter選項(xiàng)來指定運(yùn)行部分測(cè)試。比如:快速運(yùn)行當(dāng)前工作的測(cè)試使用命令ember test --filter="dashboard"、運(yùn)行指定類型的測(cè)試使用命令ember test --filter="integration"、可以使用!來排除驗(yàn)收測(cè)試ember test --filter="!acceptance"。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)