溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Angular中關(guān)于單元測(cè)試的面試題有哪些

發(fā)布時(shí)間:2021-06-08 11:17:13 來(lái)源:億速云 閱讀:148 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了Angular中關(guān)于單元測(cè)試的面試題有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Angular中的測(cè)試有哪些種,基于哪些測(cè)試框架

Angular的測(cè)試主要包括單元測(cè)試(Unit Test)和端到端測(cè)試(e2e)。

  • 單元測(cè)試(Unit Test):基于jasmine和Karma。jasmine是一套通用的測(cè)試框架,除了Angular之外,也有廣泛引用;Karma是Angular專用的用于管理測(cè)試配置等的框架,讓測(cè)試代碼方便的在指定瀏覽器執(zhí)行;另外,根據(jù)喜好,也可以選擇 Mocha 和 Chai。

  • 端到端測(cè)試(e2e):基于protractor。protractor是Angular專用的e2e框架?!鞠嚓P(guān)教程推薦:《angular教程》】

什么是Karma? 在Angular中有什么作用?

Karma是用于在瀏覽器環(huán)境中針對(duì)測(cè)試代碼執(zhí)行源代碼的工具。 它支持在為其配置的每個(gè)瀏覽器中運(yùn)行測(cè)試。 同時(shí)將結(jié)果顯示在命令行和瀏覽器上,或者輸入標(biāo)準(zhǔn)格式的報(bào)表,供開發(fā)人員檢查哪些測(cè)試通過(guò)或失敗。 Karma還會(huì)監(jiān)視文件,并且只要文件發(fā)生更改,就可以觸發(fā)測(cè)試重新運(yùn)行。 同時(shí)Karma還可以統(tǒng)計(jì)代碼覆蓋率(Code Coverage)。
在Angular項(xiàng)目的根目錄下,我們具有用于配置Karma的文件karma.conf。

什么是Jasmine? 在Angular中有什么用?

Jasmine是一個(gè)javascript測(cè)試框架,支持稱為行為驅(qū)動(dòng)開發(fā)或簡(jiǎn)稱BDD的軟件開發(fā)實(shí)踐。 這是測(cè)試驅(qū)動(dòng)開發(fā)(TDD)的一種特殊風(fēng)格。

Jasmine和BDD通常嘗試以一種人類可讀的格式描述測(cè)試,以便非技術(shù)人員可以理解所測(cè)試的內(nèi)容。

什么是protractor?

protractor是Angular的端到端測(cè)試框架。 它在真實(shí)的瀏覽器中運(yùn)行測(cè)試,并像真實(shí)的人一樣與之交互。 與單元測(cè)試不同,在單元測(cè)試中,我們測(cè)試各個(gè)功能,而在這里,我們測(cè)試整個(gè)邏輯。 protractor能夠填寫表格,單擊按鈕,并確認(rèn)預(yù)期的數(shù)據(jù)和樣式顯示在HTML文檔中。

就像Karma一樣,Protractor在Angular項(xiàng)目的根目錄protractor.conf中擁有自己的配置文件。

單元測(cè)試 Unit Test

什么是Angular中的單元測(cè)試?

單元測(cè)試用于測(cè)試隔離中的單個(gè)功能,單個(gè)組件,特點(diǎn)是隔離和之星快。在此單元測(cè)試中,我們不能說(shuō)應(yīng)用程序中的一切都很好,而是僅針對(duì)單個(gè)單元或功能,即可確保正常工作。

Angular UT的最佳實(shí)踐

  • 在beforeEach() 中初始化使用到的上下文;

  • describe(),it() 中的描述要清晰。方便閱讀,方便測(cè)試失敗時(shí)快速定位;

  • 使用after() ,afterEach()重置測(cè)試改變的全局狀態(tài);

  • 每1個(gè)具體測(cè)試用例,不要過(guò)于復(fù)雜,盡量保證在15行代碼以內(nèi)

什么是TestBed,有什么作用

TestBed 就是Angular測(cè)試工具集(@angular/core/testing)提供的用于構(gòu)建一個(gè) @NgModule 測(cè)試環(huán)境模塊??梢?/p>

  • TestBed.configureTestingModule,準(zhǔn)備測(cè)試環(huán)境

  • 利用 TestBed.createComponent 創(chuàng)建一個(gè)用于測(cè)試目標(biāo)組件的測(cè)試組件

測(cè)試Service時(shí),有其他依賴如何處理?

使用TestBed創(chuàng)建用例是,將依賴項(xiàng)加到providers中

TestBed.configureTestingModule({
  providers: [YourDependencyService]
});

端到端測(cè)試(e2e)

基于Protractor,測(cè)試成本比較高,一般能覆蓋陽(yáng)光測(cè)試用例(sunny case)即可。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Angular中關(guān)于單元測(cè)試的面試題有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI