2016-02-05 108 views
0

具有相當複雜的角度應用程序和許多頁面(狀態)和創建大量測試場景的條件部分,我需要執行e2e測試。我厭倦了像'div.SomeComponent> ul:nth-​​child(2)> ...'等嵌套選擇器,甚至使用BEM namings(特別是當應用程序正在發展,並且很容易通過少量更改html來破壞測試結構體)。E2E測試中的自定義類或屬性

問題是,你們會選擇創建一些虛擬(空)類還是數據* attrs來簡化量角器(或常規)選擇器,而忽略語義?有什麼選擇?

回答

0

爲避免每次開發人員更改css時更改元素定義,並避免使用長css字符串來選擇元素,可以嘗試通過其他方式(id,className,model等)引用它們。例子見https://github.com/angular/protractor/blob/master/docs/locators.md。我個人最喜歡的是使用元素(by.css('[ng-click =「executeSomeAction()」]')),因爲這很可能不會隨任何應用程序更新而改變。它也適用於其他指令。

至於測試大量頁面和元素的應用程序,最好在類中定義元素,然後根據需要在測試規範中調用它們。這減少了您的規格中的代碼,並使它們更易於閱讀。您可能還想爲您的測試執行的操作/功能創建一個單獨的文件。

希望這有助於回答你的問題。

+1

我完全同意量角器定位器,其實我最喜歡的是使用元素(by.model(modelName))。 案例是測試人員(不是開發人員)正在使用一些其他測試框架 - 硒,groovy。儘管選擇器會非常相似,但我們在頁面上有幾個非常通用的組件。假設我們有5個,但首先有條件地顯示。沒有像'componentName1','componentName2'等虛擬類,或者有一些特殊的數據* attrs,他們發現很難掛鉤到第n個組件,因爲'n'是動態的。 – adam