在經過前兩天簡單的介紹 Cypress,現在我想透過一個實際的範例來讓大家更加了解 Cypress 以及到底如何攥寫 E2E 測試。
我們這次測試的目標網站是非常經典的 TodoMVC ,不過為了呼應 Vue 的主題,所以我會拿 Vue.js • TodoMVC 當作測試的目標網站。
大家可以透過連結自由操作一下,會對於接下來的測試例子更佳有感!
以下是這次測試的案例規劃:
我大部分是參考 TodoMVC 原作者所攥寫的 E2E 測試,並從中挑選重要的核心操作來示範撰寫測試,如果想瞭解涵蓋率 100% 的 TodoMVC E2E 測試可以去查看原作的 Source Code。
實務上 E2E 測試也不常達到 100%,因為 E2E 所要花費的成本是所有測試類型中最高的,而且通常在涵蓋率達到 60~70 % 後測試的效益就會大幅降地 (成本太大),也因此通常僅會為產品的核心功能攥寫 E2E 測試。
describe('Todo MVC', () => {
context('Case 1: Initial State', () => {
beforeEach(() => {
cy.visit('https://todomvc.com/examples/vue')
})
it('Case 1-1: start with zero todo item', () => {
cy.get('.todo-list .todo').should('have.length', 0)
})
it('Case 1-2: hide .main and .footer', () => {
cy.get('.main').should('not.be.visible')
cy.get('.footer').should('not.be.visible')
})
})
})
語法說明:
在控制台中可以看到 Cypress 輸出的資訊,點擊 Command Log 中的每一行命令都可以看到當時的樣貌以及 console 資訊,來幫助我們開發或是除錯
今天的分享就到這邊,如果大家對我分享的內容有興趣歡迎點擊追蹤 & 訂閱系列文章,如果對內容有任何疑問,或是文章內容有錯誤,都非常歡迎留言討論或指教的!
我們明天見!