【发布时间】:2015-06-19 19:50:37
【问题描述】:
我一直在做单元测试。在做 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)(或其他方法)来确定我是否需要在测试方法中模拟服务。这让人觉得我在编写单元测试时有点考虑实现细节。有什么问题吗?
【问题讨论】:
标签: unit-testing mocking tdd