[Cucumber] How to write test cases by Chinese

凌晨12:50



故事是這樣開始的…
前一陣子, 團隊裡面的成員們, 正在為一段 story acceptance critira 的描述進行辯論, 後來得到兩個選項 :

A: Then the results page displayed
B: Then I should see results page
當大家正在針對上面這兩個選項進行辯論的過程中, 突然間有一個成員舉手了, 說 :
請問一下, 如果 scenario 用中文來寫, 會如何來描述???
這個問題真的敲醒我, 對ㄝ, 中文的話要怎麼表達這個句子.
A : 那麼結果頁面成功顯示
B : 那麼我能夠看見結果顯示成功
於是我開始反查 cucumber 裡面有沒有類似的作法, 結果發現 cucumber 在約兩個月 ( 10 月左右) 前提供了 i18n (多國語系) 的支援, 範例可以在這找到 :
../cucumber-2.4.0/examples/i18n/..
於是, 小弟我就寫一個 API 測試的範例來說明吧 :

Steps:

1. 在 feature 檔一開始定義繁體中文
#language: zh-TW
2. feature 檔寫法 :
過去我們習慣用 Feature: , 但是在 i18n 裡面我們可以用 功能: 表示.
功能: 
     為了避免愚蠢的錯誤
     作為一個 QA 初學者
     我希望有人能告訴我測試 API 結果
場景大綱: 代表 Scenario Outline:
場景大綱: 測試 API
 當我測試圖片API編號 <數值_1>
 那麼我驗證回傳編號 <驗證_1>
例子: 代表 Examples:
例子:
 | 數值_1 | 驗證_1 |
 | 1    | 1    |
 | 2    | 2    |
 | 20   | 10   |
當大功告成之後, 我們就來實作 step 檔吧 :
When /我測試圖片API編號 (\d+)/ do |op|
    @response = @req.get("photos/#{op}")
end

Then /我驗證回傳編號 (\w+)/ do |op|
    json = Json_Parser.new(@response)
    ids = json.get_json_values_by_key("id")
    if not ids.eql? "#{op}".to_i
        raise "expect id : #{op}, actual id : #{ids}"
    end
end
在這裡我是引用 rest_client 及 json, 這兩個 ruby 的 package 來處理 API 的 request 及 response, 詳細的實作在這裡就不多做說明了.

當一切都完成後, 我們就來執行 cucucmber 吧!

cucumber
結果 :

經過這一番努力後, 得到一個結論 : 
誰說中文不能寫測試案例 :)

Github : 


You Might Also Like

0 意見