您好,登錄后才能下訂單哦!
這篇文章主要介紹了Angular中關(guān)于單元測(cè)試的面試題有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
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中擁有自己的配置文件。
什么是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] });
基于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í)!
免責(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)容。