我想知道測試用例如何驅動界面設計。如何在不首先實現的情況下測試接口?
現在,如果我有一個方法的接口:
public interface UserService { User getNextUser(); }
如果UserServiceImpl是UserService的實現,然後按我的模仿對象的理解,我只能嘲笑UserServiceImpl的依賴關係,就像UserRepository一樣,因爲只有這樣我才能真正測試行爲,即UserServiceImpl是否調用UserRepository。然後,如果我必須編寫一個UserServiceTest,而不創建一個UserServiceImpl,那麼我看到的唯一方法是創建一個UserService模擬,這似乎不太正確。
我在哪裏出錯了?
接口反映了設計決策。他們可能*就設計而言是錯誤的。我沒有看到使用自動化測試批准良好/正確設計的任何方法。接口*實現*相反,可以參考其指定/預期行爲進行測試。 – zellus 2010-09-19 12:04:49