天天看點

《AngularJS深度剖析與最佳實踐》一2.13 端到端測試

本節書摘來自華章出版社《angularjs深度剖析與最佳實踐》一書中的第2章,第2.13節,作者 雪狼 破狼 彭洪偉,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

端到端測試(e2e test),也稱為場景測試,它模拟的是使用者真實的操作場景:

在搜尋框中輸入了abc。

然後點選其後的搜尋按鈕。

這時候,他期望看到一個清單,列出所有在标題的任意位置包含了字元串abc的條目,并且每條結果中的abc這三個字母被高亮。

所謂端到端,也就是一端是浏覽器,另一端是伺服器,這個測試貫通了前後端,具有近似于驗收測試的價值。

端到端測試不是什麼新技術,它在前後端分離架構盛行之前就已經被廣泛采用了,比如selenium,而且selenium也同樣可應用于angular中。

angular的端到端測試工具稱為protractor,事實上,它就是基于selenium的,在selenium的基礎上,它增加了一些angular特有的元素選取方式,如根據ng-model選取元素等。

我的建議是,除非你所在的開發組織已經把angular作為唯一的前端選項,否則請使用selenium中傳統的函數,而不要使用protractor特有的根據ng-model選取元素等函數,這将讓你們的測試獨立于前端技術棧而被複用。

在我的工程實踐中,隻會使用id、class等少數查閱方式,而不會根據ng-model等進行查閱。并且,由于angular的特點,被測試程式中可以不用任何id,是以,我們可以完全把id留給測試人員使用。如果寫測試的人員有權修改源碼,那麼他/她可以自由的添加、删除id,而不用擔心破壞了程式的邏輯和樣式。遵循這個約定,可以讓開發與測試的協同更加有效。

這裡不展開講解,隻把我在種子工程中寫的一些代碼加上注釋供大家自行研究:

1)pages/homepage.js

2)demospec.js

繼續閱讀