這篇文章主要介紹了Angular中關于單元測試的面試題有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Angular的測試主要包括單元測試(Unit Test)和端到端測試(e2e)。
單元測試(Unit Test):基于jasmine和Karma。jasmine是一套通用的測試框架,除了Angular之外,也有廣泛引用;Karma是Angular專用的用于管理測試配置等的框架,讓測試代碼方便的在指定瀏覽器執行;另外,根據喜好,也可以選擇 Mocha 和 Chai。
端到端測試(e2e):基于protractor。protractor是Angular專用的e2e框架?!鞠嚓P教程推薦:《angular教程》】
什么是Karma? 在Angular中有什么作用?
Karma是用于在瀏覽器環境中針對測試代碼執行源代碼的工具。 它支持在為其配置的每個瀏覽器中運行測試。 同時將結果顯示在命令行和瀏覽器上,或者輸入標準格式的報表,供開發人員檢查哪些測試通過或失敗。 Karma還會監視文件,并且只要文件發生更改,就可以觸發測試重新運行。 同時Karma還可以統計代碼覆蓋率(Code Coverage)。
在Angular項目的根目錄下,我們具有用于配置Karma的文件karma.conf。
什么是Jasmine? 在Angular中有什么用?
Jasmine是一個javascript測試框架,支持稱為行為驅動開發或簡稱BDD的軟件開發實踐。 這是測試驅動開發(TDD)的一種特殊風格。
Jasmine和BDD通常嘗試以一種人類可讀的格式描述測試,以便非技術人員可以理解所測試的內容。
什么是protractor?
protractor是Angular的端到端測試框架。 它在真實的瀏覽器中運行測試,并像真實的人一樣與之交互。 與單元測試不同,在單元測試中,我們測試各個功能,而在這里,我們測試整個邏輯。 protractor能夠填寫表格,單擊按鈕,并確認預期的數據和樣式顯示在HTML文檔中。
就像Karma一樣,Protractor在Angular項目的根目錄protractor.conf中擁有自己的配置文件。
什么是Angular中的單元測試?
單元測試用于測試隔離中的單個功能,單個組件,特點是隔離和之星快。在此單元測試中,我們不能說應用程序中的一切都很好,而是僅針對單個單元或功能,即可確保正常工作。
Angular UT的最佳實踐
在beforeEach() 中初始化使用到的上下文;
describe(),it() 中的描述要清晰。方便閱讀,方便測試失敗時快速定位;
使用after() ,afterEach()重置測試改變的全局狀態;
每1個具體測試用例,不要過于復雜,盡量保證在15行代碼以內
什么是TestBed,有什么作用
TestBed 就是Angular測試工具集(@angular/core/testing)提供的用于構建一個 @NgModule 測試環境模塊??梢?/p>
TestBed.configureTestingModule,準備測試環境
利用 TestBed.createComponent 創建一個用于測試目標組件的測試組件
測試Service時,有其他依賴如何處理?
使用TestBed創建用例是,將依賴項加到providers中
TestBed.configureTestingModule({ providers: [YourDependencyService] });
基于Protractor,測試成本比較高,一般能覆蓋陽光測試用例(sunny case)即可。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Angular中關于單元測試的面試題有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。