[英]How can I test idempotency of a method with junit?
我必須測試方法的冪等性。
讓我們說我有類Person有以下方法:
public String doSomething(String a){
//do some stuff
personDao.delete(a)
}
我需要在刪除之前測試出錯的地方,下次調用方法doSomething時,它會在第一次正確運行時創建相同的結果。 例如,當您運行調用該方法的腳本但是例如通過停止腳本失敗時,可能會發生這種情況。 當您在下一次運行腳本時,它應該在沒有失敗的情況下提供相同的結果。
你能在單元測試中做到這一點嗎?
提前致謝
測試應該運行該方法兩次。 兩種情況下的結果/結果應該相同。 這真的很簡單。
偽代碼:
setupException();
doSomething(a);
assertOutcome();
doSomething(a);
assertOutcome();
所以答案的第一部分是使用模擬DAO。 編寫兩個測試,一個調用方法兩次,DAO不拋出異常。 另一個DAO在第一次調用時拋出異常的地方。
這兩種情況的預期行為取決於您的DAO。 是否可以在DAO上調用已delete
的值的刪除? 如果是這樣,很好。 期待兩個電話。 如果沒有,那么你需要邏輯來檢查狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.