我一直在做单元测试。在做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)
(或其他方法)来确定我是否需要在测试方法中模拟服务。这让我觉得我在编写单元测试时考虑了实现细节。有什么不对的吗?