日前,要使用 SpecFlow 描述需求,被測目標會回傳多筆訊息,以往我驗證多筆資料是使用 \r\n
現在...我改用 Doc Strings
SpecFlow 要驗證多筆資料(Text),除了 \r\n 之外,還可以用 cucumber Doc Strings
感謝同事給了 方向: https://cucumber.io/docs/reference#step-arguments
用法就是前後用三個引號包起來,如下圖:
原本我是這樣寫,多筆訊息靠著 \r\n 斷行,其實還是一整行不容易閱讀
Scenario:錯誤訊息
Given 模擬資料庫有以下資料
| LockAccountId | LockItemNo | LockFormNo |
| 余小章 | 1 | 2016S01022 |
| 余小章 | 2 | 2016S01022 |
| 余小章 | 3 | 2016S01022 |
And 是否鎖定參數
| AccessId | TimeNow |
| 王小明 | 2011-01-01 01:41:00 |
When 我調用IsLock
Then 應得到例外訊息 (項目:1,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用\r\n項目:2,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用\r\n項目:3,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用)
改用 Doc Strings 之後,多筆描述就變得比較好閱讀。 :)
Scenario:錯誤訊息
Given 模擬資料庫有以下資料
| LockAccountId | LockItemNo | LockFormNo |
| 余小章 | 1 | 2016S01022 |
| 余小章 | 2 | 2016S01022 |
| 余小章 | 3 | 2016S01022 |
And 是否鎖定參數
| AccessId | TimeNow |
| 王小明 | 2011-01-01 01:41:00 |
When 我調用IsLock
Then 應得到多筆例外訊息
"""
項目:1,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用
項目:2,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用
項目:3,單號:2016S01022,不正常的操作,沒有在 20 分鐘內完成 存檔,該筆資料已被 余小章 使用
"""
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET