这是在3天的研究和编写代码之后。我有EF Code First(EF5)和一个建立在它之上的通用存储库模式。我们有ICustomerRepository<Customer> : IRepository and CustomerRepository : RepositoryBase<MyContext> , ICustomerRepository
。所以当我去测试这个时,我发现我必须写一个FakeDbContext,一个假IDbSet,然后伪造这些数据,并且做更多的事情。所有这一切,当我知道我将使用我的内存数据测试Linq到Objects时,Linq to Entities将需要以集成测试的形式进行另一套测试。所以,无论是我的代码结构是错误的,因此编写单元测试非常困难,或者有更好的方法来编写我不知道的测试,或者我应该只进行集成测试。我正在使用NUnit和MOQ。有没有正确的方法来测试EF代码优先库模式?
编辑:我试图测试什么? 我想检查GetCustomersByType,Add,GetOrderPlacedByCustomer等方法。试图查看这些方法内部的逻辑是否正确。这是什么单元测试的,我猜。
*你想要测试什么?测试有什么目的? –
然后,是的 - 对于那种单元测试,您需要创建假数据结构。你可以通过创建你自己的实现或者通过嘲笑来做到这一点。我建议在你正在测试的东西的最外边界利用嘲弄。 –
如果我嘲笑我的背景他们我的单元测试将参考EF,这是一个好主意吗?我不确定,只是试图让我的头在这附近。 –