unit test
的概念和 integration test
定义明确:前者测试一个组件,后者测试多个组件。
我用 Effort
测试我的Entity Framework
存储库。 Effort 是一种内存数据库实现,因此我们不会访问实际的数据库,而只是访问内存,因此速度更快。
我通过创建一些假数据并用这些假数据填充内存数据库来仅测试我的存储库。我不是在 mock 数据上下文。这些应该被视为单元测试还是集成测试?
编辑 :我正在测试我的存储库的方法 - 例如CustomerRepository.GetAllCustomers。我正在用(比如说)5 个客户填充这个内存数据库,调用该方法,并断言我让这 5 个客户回来了。
最佳答案
根据您对方法 CustomerRepository.GetAllCustomers
的测试的描述,它看起来确实是一个单元测试,因为您没有使用 其他服务(外部或应用内) .
如果您的方法只是使用数据库 Connection
对象从内存数据库而不是真正的数据库中检索行,并且没有其他公共(public)服务被调用或被模拟(如果被调用)那么你正在做一个单元测试(即使你没有共享代码对我来说确实如此CustomerRepository.GetAllCustomers
)。
正如之前的答案已经指出的那样,仅使用内存数据库不足以判断您的测试是单元测试还是集成测试。如果您正在测试 DAO layer
本身。
关于unit-testing - 使用内存数据库进行测试。单元测试还是集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020225/