淺析 codeceptjs

從測試對象的粒度來說,測試分爲三類:單元測試,集成測試和E2E(end to end)測試。對於E2E測試,BDD (Behavior Driven Design)[1]風格的 Codeceptjs是一個不錯的選擇。它可以用不同的類庫執行case。同時,作爲Domain Specific Language的傑出代表,codeceptjs 使得開發者可以用自然語言(當然,是英語)編寫case。而且,爲ex Protractor設計的簡化的API同樣支持Angular工程 (說的好像我會開發Angular工程一樣)。

Codeceptjs使用javascript而不是java或python,也就是說即使開發人員不懂java或python,也可以寫出結構良好、可讀性強和功能強大的E2E測試case。(其實,很難想象開發人員既不懂java也不懂python)。而反過來,對於不懂基於event-loop[2] 模型的javascript的人(比方說我)來說,codeceptjs屏蔽了複雜的異步調用和回調函數,更不用考慮promise(說說而已,豈能當真,我會另寫一篇描述那個痛苦的過程),可以完全從用戶的角度出發開發case。


Codeceptjs最爲強大也是最爲誘人的地方在於它支持多種“backend”測試框架,包括webdriverIO,Puppeteer和Protractor。



Codeceptjs API支持多種不同的backends 框架,用戶只需要在配置文件中制定需要的backend。有一點值得注意,Puppeteer是個另類,它並不是用WebDriver protocol (有朋友給出理由嗎?),而是用Chrome Devtools protocol ,而且需要Chrome和OEL7。所幸,如果你正在用WebDriverIO,你可以很容易的把它轉成Puppeteer,因爲Codeceptjs API都是一樣的。


References:
[1] https://codecept.io/basics
[2] https://www.jianshu.com/p/715ad2333241

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章