单元测试和集成测试的概念是明确定义的:前者测试一个组件,后者测试多个组件.
我使用Effort来测试我的Entity Framework存储库. Effort是一个内存数据库实现,因此我们不会访问实际数据库而只访问内存,因此速度更快.
我只是通过创建一些假数据并使用这些假数据填充内存数据库来测试我的存储库.我不是在嘲笑数据上下文.这些应该被视为单元测试还是集成测试?
编辑:我正在测试我的存储库的方法 – 例如CustomerRepository.GetAllCustomers.我正在与(比如说)5个客户填充这个内存数据库,调用该方法,并断言我让这5个客户回来了.
从您对
方法CustomerRepository.GetAllCustomers的测试描述中,它确实看起来是一个单元测试,因为您没有使用其他服务(外部或在您的应用程序中).
如果你的方法只是使用数据库连接对象从内存数据库中检索行而不是实际数据库而没有其他公共服务被调用或被模拟(如果被调用)那么你正在进行单元测试(对我来说似乎是这样的)即使您没有共享CustomerRepository.GetAllCustomers的代码).
正如之前的回答所指出的那样,仅仅使用内存中的db并不足以判断您的测试是单元还是集成esp.如果您正在测试DAO层本身.