如何单元测试存储库方法

Ano*_*use 4 unit-testing entity-framework moq mocking

我有这种方法进行单元测试:

public virtual TEntity Get(int id)
        {
            return _db.Set<TEntity>().Find(id);
        }
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何进行单元测试吗?

我在想我需要测试的是使用正确的id调用Find?

首先,我试图_db使用Moq 来模拟上下文.设置不是虚拟的,所以不能使用Verify.

有人可以建议另一种测试方法吗?

Dmi*_*try 9

存储库实现通常充满了对ORM API的调用.这里没有任何单元测试.您应该编写集成测试.在SQLite等内存数据库中使用.阅读本文本文.这样你就可以覆盖你的映射,标准,HQL等.我知道你使用的是EF,但我认为这个原理与NHibernate相同.

关于嘲笑_db.有一个非常好的准则:不要嘲笑你不拥有的类型.