概念unit test和integration test定义明确:前者测试一个组件,后者测试多个组件.
我Effort用来测试我的Entity Framework存储库.Effort是一个内存数据库实现,因此我们不会访问实际的数据库而只访问内存,因此速度更快.
我只是通过创建一些假数据并使用这些假数据填充内存数据库来测试我的存储库.我不是在嘲笑数据上下文.这些应该被视为单元测试还是集成测试?
编辑:我正在测试我的存储库的方法 - 例如CustomerRepository.GetAllCustomers.我正在使用(比如说)5个客户填充这个内存数据库,调用该方法,并断言我让这5个客户回来了.
从您对方法测试的描述来看CustomerRepository.GetAllCustomers,它看起来确实是一个单元测试,因为您没有使用其他服务(外部或您的应用程序内)。
如果您的方法只是使用 dbConnection对象从内存中的 db 而不是真正的 db 中检索行,并且没有其他公共服务被调用或被模拟(如果被调用),那么您正在进行单元测试(对我来说似乎确实如此即使您没有共享 ) 的代码CustomerRepository.GetAllCustomers。
正如之前的答案已经指出的那样,仅使用内存数据库不足以判断您的测试是单元测试还是集成测试。如果你正在测试DAO layer自己。
使用内存数据库并不足以提供足够的信息来判断您正在编写单元测试还是集成测试。
如果您只测试一个小组件(例如类的方法),那么是的,这是一个单元测试。但是,如果该方法调用其他公共方法来完成其工作,并且您没有模拟这些依赖项,那么这将是一个集成测试。
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |