cypress 個人編碼守則

Jacky發表於2020-07-11

** cypress coding notice 個人編碼守則 **

  1. 儘量用 cy.get 不用 chain,例如 cy.get().contains cy.get().eq() 等 chain
  2. 將頁面封裝為類,對任何單頁面的修改歸結於對一個類的修改,成為 UI 層
  3. 跨頁面的操作封裝為 API,如 login,logout,openXxxMenu,業務的邏輯修改歸結為只對 api 的修改,成為 service 層
  4. 業務物件封裝為物件,對上述兩層的傳入引數只能是物件,不能是屬性,成為 data 層
  5. 對資料操作等公用演算法封裝 api,成為 util 層
  6. 後端的 api 請求封裝為類,成為 api 層
  7. 對複雜的 UI 類封裝為動態 chainable 類,支援鏈式呼叫;對簡單的 UI 類封裝為 static 類,無需例項化

其它

  1. 用 axios 不用 cy.request
  2. 原則上不允許有 eslint 問題
  3. 待 verify 的 case list 原則上不允許有 case 間相互依賴
  4. 對上述第 3 條而言,環境初始化和資料初始化等非業務 verify case,封裝進 init 型別 case,cypress 中使用不同 case 集進行先後呼叫
  5. cypress 的 command 封裝,只針對與特定頁面無關操作,例如 getAndClick/ clearAndType,不封裝單個頁面的序列操作,以便於團隊內多人開發

相關文章