簡體   English   中英

如何用junit測試方法的冪等性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM