Automation tests 5 — Code Architecture 之一
以下從上到下介紹:
gherkins 語法
就是 given-when-then 的寫法,given 前條件,when 做了某些操作,then 預期的結果。
其實啊,你仔細想想,這些步驟全部都要成功,這一個 test 才算成功,所以 given, when, then 其實都是 And。
gherkins 語法描述的是業務目標,比如說:
這個講的就是,首購的新會員填完實名制資料後,可以用免費序號買東西。
given-when-then 是放在 feature 檔裡面,這裡面會有一個 feature,多個 scenario,每一個 scenario 可以有一個 tag,所以長得會像這樣:
tag 是,你在執行的時候,可以下參數: --tags @first_buy_001
就只會執行這個 tag 的 scenario 了。
given-when-then 是 100% 可以跨平台共用的,100% 給地球人看的。用 given-when-then 寫出來的東西,應該要成為業務單位與工程單位的溝通基礎,應該要在一開始的 PBI 的驗收條件就用這樣的格式寫,然後 RD 去開發、我們來寫 automation。
step_definition
每一個 Given (When, Then, And) 的句子,cucumber 系列會用 regular-expression 對應到某一塊 ruby 程式,而這程式是放在 step_definition 資料夾裡面的某個檔案。
比如說上面的第四步:And 在會員中心填寫實名制資料
在 Android 的實作是在 step_definitions/first_buy_flow_steps.rb 裡面:
在 ios 的實作是在 steps_definition/first_buy_flow_steps.rb
在 mWeb 的實作是在 step_definitions/first_buy_flow_steps.rb 裡面:
基本上,這些實作的動作是可以某個人把一個平台先寫出來以後,其他兩個平台可以拿去 copy 的,或許會因為某些原因需要做小幅的更動,但不至於每個平台要各自寫各自的一份 code,會很煩。
其他的 steps 也差不多,每個都可以某種程度上的 re-use。
留言
張貼留言