單斷言VS多斷言

2022-09-08 18:24:09 字數 1346 閱讀 5082

stst

想和大家討論一下,乙個測試用例裡只做乙個斷言

還是乙個用例裡做多個相關的斷言

比如有乙個查詢函式query(id) 返回[姓名,性別,年齡]

那麼是在乙個測試用例裡對這三個屬性進行斷言好?

還是在三個測試用例裡,對每個屬性進行斷言好?

hz三個檢查乙個用例

你是希望有10個問題每次告訴你乙個人折騰10次還是一次告訴你10個折騰1次

stst

哦,但是我發現分開寫,表達力更強

你說的"折騰"當然有道理,但是犧牲了表達力

現在的討論分為兩派了,如果能各抒己見最好

我比較支援分開寫的這一派,但是也無法反駁前面一派

crs你的這3個屬性是由乙個行為獲取到的..,為嘛要寫成3個...

stst我是感覺表達力會強一些

crs那為啥不可以把這3個驗證抽成乙個方法..如果有必要抽的話

stst

如果query複雜一點,姓名,性別,年齡各自來自複雜的演算法,是不是分開就更容易表達跟蹤了

wl怎麼知道這三個屬性無相關性,三個用例單獨驗證都正確不等於一次取出時全部正確吧

stst

嗯,是的,很有見解

對這個問題可以這樣解釋

我現在對這個說法很認同

以概念本身為單元,乙個概念本身有幾個屬性,應該放一起斷言,但是不應該同時斷言幾個概念

wl同意

stst

也就是說,不能再乙個測試裡,斷言兩個概念

比如執行

insert(...)

斷言insert的結果

query()

斷言query的結果

因為insert的結果和query的結果是兩個無關的概念,不應該放乙個測試裡斷言

我是這麼理解的了

wl塞兄很擅長抽象總結,我覺得,insert和query是兩個獨立test,如果合起來那是另乙個新的test,一般是帶業務關聯的,否則沒必要放一起,放一起後測試方向也不一樣

stst

過獎過獎,喜歡瞎掰而已

嗯,這個問題再討論下去,又成了oox裡的原則問題了

單一職責:乙個模組只做一件事

用在這裡感覺也很合適:乙個測試只斷言一件事,為什麼把insert和query放乙個測試用例不好,就是因為乙個測試斷言了兩件事

lf做正確的事,而不是正確的做事

stst

嗯,而且是只作一件正確的事

vs 下的 斷言錯誤

出現 debug assertion failed錯誤 是因為你程式中的斷言失敗了,也就是這一句話 assert pactivateview this assert是system.diagnostics.debug類的乙個靜態方法,只在debug的狀態下起作用,如果程式是編譯成release的,那麼...

Jmeter斷言 響應斷言

斷言就類似loadrunner中的檢查點。對上乙個請求返回的資訊,做字串 資料報大小 html xml 等做判斷,確保返回的資訊的準確性。jmeter的斷言有好多,下面是乙個響應斷言 新建乙個執行緒組,執行緒組中新增乙個http請求 新增響應斷言 新增 斷言 響應斷言 main sample and...

JMeter斷言 響應斷言

路徑 右鍵取樣器,新增 斷言 響應斷言 注 測試字段 響應 匹配響應 如 http協議返回 200 代表成功。模式匹配規則 包括 contains 包含,可用正則。匹配 match 匹配,可用正則。相等 equals 相等,不能用正則,區分大小寫。字串 substring 也是包含,不能用正則,區分...