淺談Angular單元測(cè)試總結(jié)
測(cè)試分類
按開發(fā)階段劃分
- 單元測(cè)試
單元測(cè)試又稱模塊測(cè)試,針對(duì)軟件設(shè)計(jì)中的最小單位——程序模塊,進(jìn)行正確性檢查的測(cè)試工作。
- 集成測(cè)試
集成測(cè)試又叫組裝測(cè)試,通常在單元測(cè)試的基礎(chǔ)上,將所有程序模塊進(jìn)行有序的、遞增測(cè)試。重點(diǎn)測(cè)試不同模塊的接口部分
- 系統(tǒng)測(cè)試
指的是將整個(gè)軟件系統(tǒng)看成一個(gè)整體進(jìn)行測(cè)試,包括對(duì)功能、性能以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測(cè)試。
- 驗(yàn)收測(cè)試
指按照項(xiàng)目任務(wù)書或合同、供需雙方約定的驗(yàn)收依據(jù)文檔進(jìn)行的對(duì)整個(gè)系統(tǒng)的測(cè)試與評(píng)審,決定是否接收或拒收系統(tǒng)
按是否運(yùn)行劃分
- 靜態(tài)測(cè)試
是指不實(shí)際運(yùn)行被測(cè)軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔中可能存在的錯(cuò)誤過程
- 動(dòng)態(tài)測(cè)試
是指實(shí)際運(yùn)行被測(cè)程序,輸入相應(yīng)的測(cè)試數(shù)據(jù),檢查實(shí)際輸出結(jié)果和預(yù)期結(jié)果是否相符的過程。
按是否查看源代碼劃分
- 黑盒測(cè)試
指的是把被測(cè)的軟件看做一個(gè)黑盒子,不關(guān)心盒子里面的結(jié)構(gòu)是什么樣子,只關(guān)心軟件的輸入數(shù)據(jù)和輸出數(shù)據(jù)。
- 白盒測(cè)試
指的是把盒子打開,去研究里面的源代碼和程序結(jié)構(gòu)。
其他
- 回歸測(cè)試
是指軟件被修改后重新進(jìn)行的測(cè)試,重復(fù)執(zhí)行上一個(gè)版本測(cè)試時(shí)的用例,是為了保證對(duì)軟件所做的修改沒有引入新的錯(cuò)誤而重復(fù)進(jìn)行的測(cè)試。
- 冒煙測(cè)試
是指在對(duì)一個(gè)新版本進(jìn)行系統(tǒng)大規(guī)模的測(cè)試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測(cè)性。
- 隨機(jī)測(cè)試
是指測(cè)試中所有的輸入數(shù)據(jù)都是隨機(jī)生成的,其目的是模擬用戶的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。
一直以來都是后臺(tái)寫單元測(cè)試,這周初次使用前臺(tái)單元測(cè)試,出錯(cuò)是必然的
問題使用自己寫的組件或者管道是報(bào)錯(cuò)
需要在前臺(tái)單元測(cè)試spec.ts
文件中加入自己寫的組件或管道,例如:
使用框架中自帶的組件
需要在前臺(tái)單元測(cè)試spec.ts
文件中加入報(bào)錯(cuò)信息提示的組件,例如:
[object ErrorEvent] thrown
[對(duì)象 錯(cuò)誤事件] 被拋出
這個(gè)錯(cuò)誤是遇到次數(shù)最多的,當(dāng)時(shí)出現(xiàn)這個(gè)錯(cuò)誤時(shí)和張喜碩組長(zhǎng)研究查資料搞了大半宿也沒解決,最后還是在潘老師的幫助下解決的,得知ng test
時(shí)控制臺(tái)報(bào)錯(cuò)的哪個(gè)文件,不一定是這個(gè)文件出錯(cuò),解決辦法如下:
打開單元測(cè)試時(shí)自動(dòng)彈出來瀏覽器的控制臺(tái)
控制臺(tái)中,由于http發(fā)起請(qǐng)求時(shí),必然發(fā)生錯(cuò)誤,所以有很多個(gè)錯(cuò)誤,但是導(dǎo)致單元測(cè)試不通過的,只有那些發(fā)生了異常,我們沒有傳入error的
找到Uncaught
,點(diǎn)開HttpErrorResponse
看一下對(duì)應(yīng)service
中的那個(gè)服務(wù)
在對(duì)應(yīng)的服務(wù)中找到,找到方法(在方法名上右鍵Find Usages
)看誰調(diào)用了我。
在訂閱的時(shí)候,要加入error
異常錯(cuò)誤
加上之后問題解決,單元測(cè)試通過。
總結(jié)
單元測(cè)試從長(zhǎng)期來看,可以提高代碼質(zhì)量,減少維護(hù)成本,降低重構(gòu)難度。但是從短期來看,加大了工作量,對(duì)于進(jìn)度緊張的項(xiàng)目中的開發(fā)人員來說,可能會(huì)成為不少的負(fù)擔(dān)。
但是我這里有個(gè)疑問:
angular
單元測(cè)試都是用命令行自動(dòng)生成的,測(cè)試和不測(cè)試有什么區(qū)別?感覺加了測(cè)試反而更麻煩
- angularjs中的單元測(cè)試實(shí)例
- 使用Angular CLI進(jìn)行單元測(cè)試和E2E測(cè)試的方法
- AngularJs unit-testing(單元測(cè)試)詳解
- 利用Jasmine對(duì)Angular進(jìn)行單元測(cè)試的方法詳解
- AngularJS 單元測(cè)試(一)詳解
- 在JavaScript的AngularJS庫(kù)中進(jìn)行單元測(cè)試的方法
- AngularJS 單元測(cè)試(二)詳解
- 對(duì)Angular.js Controller如何進(jìn)行單元測(cè)試
- Angular單元測(cè)試之事件觸發(fā)的實(shí)現(xiàn)
- Angular進(jìn)行簡(jiǎn)單單元測(cè)試的實(shí)現(xiàn)方法實(shí)例
相關(guān)文章
基于AngularJs + Bootstrap + AngularStrap相結(jié)合實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)代碼
這篇文章主要給大家介紹基于AngularJs + Bootstrap + AngularStrap相結(jié)合實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)的實(shí)例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-05-05indexedDB bootstrap angularjs之 MVC DOMO (應(yīng)用示例)
這篇文章主要介紹了indexedDB bootstrap angularjs之 MVC DOMO (應(yīng)用示例)的相關(guān)資料,需要的朋友可以參考下2016-06-06詳解使用angularjs的ng-options時(shí)如何設(shè)置默認(rèn)值(初始值)
本篇文章主要介紹了詳解使用angularjs的ng-options時(shí)如何設(shè)置默認(rèn)值(初始值),具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動(dòng)效果的相關(guān)資料,angularjs modal模態(tài)框創(chuàng)建可拖動(dòng)的指令,感興趣的小伙伴們可以參考一下2016-01-01Angular.js之作用域scope''@'',''='',''&''實(shí)例詳解
這篇文章主要介紹了Angular.js之作用域scope'@','=','&'實(shí)例詳解,需要的朋友可以參考下2017-02-02