我一直在做單元測試。在做TDD時,我對設計和實現細節之間的界限有點困惑。在做TDD時區分設計和實現細節
例如,我有兩個接口,服務和適配器,這個過程員工信息(添加,獲取,刪除...)
public interface IEmployeeService
{
Employee GetEmployeeById(int id)
}
public interface IEmployeeAdapter
{
private IEmployeeService _service
Employee GetEmployeeById(int id)
}
在設計,服務從存儲如數據庫,文件讀取數據系統或Web服務,適配器使用服務來獲取某些信息。
這個設計看起來很好,直到我開始爲適配器編寫單元測試。
問題是我需要知道adapter.GetEmployeeById(id)
是否會調用service.GetEmployeeById(id)
(或其他方法)來確定我是否需要在測試方法中模擬服務。這讓我覺得我在編寫單元測試時考慮了實現細節。有什麼不對的嗎?