我有一個Controller操作方法,無論發生什麼總是返回null,因爲我希望它重新加載相同的頁面。 (JSF 2.2)。單元測試只有一個結果的方法
我已經成功地使用mockito編排每條可能路徑的執行。
但是,每條路徑通常都會調用抽象方法來添加消息或調用第三方庫。
所以我可以斷言它返回null,但是不管怎麼說都是這樣。隨着發展的繼續,我看到這種模式重複。
問題:即使執行路徑,我總是測試null。
可能的解決方案,因爲我看到他們:
- 我很綠色的Mockito,所以有可能是別的東西我可以做 驗證第三方和抽象方法被調用。
我覺得 有些東西可能是有用的,但hacky是一種狀態標誌 某種知道什麼樣的消息剛剛添加到堆棧。哈克因爲它的唯一真正用途就是它將用於測試,就像我目前看到的那樣。
重新評估我的方法,因爲如果我在這種情況下,因爲我 代碼設計是錯誤的。
- 我沒有問題。保持原樣,並且確信我正在運行每條執行路徑並驗證其結果,即使認爲它是相同的。
問: 考慮什麼是已知的,哪個方向,你會考慮先嚐試解決在單元測試驗證外部內部的執行路徑的問題?還是有更好的解決方案?
在此先感謝。
與示例代碼更新解釋驗證煩惱,如果是這樣的路線我應該採取:
try {
account.save(); //<-- third party object i don't own, & returns void
addInfoMessage("All Updated!"); //<-- abstract method
} catch (final ResourceException e) { //<-- third party exception
addErrorMessage("Sorry your account could not be updated. ");//<-- abstract method
LOG.error("error msg");
}
...
return null;
感謝您的反饋,我將嘗試在本地嘗試評估它。 – 2014-11-25 03:47:29