我正在为NHibernate的EntityEventListener做一些单元测试,而尝试模拟FlushEventEntityEntry时遇到问题。

由于EntityEntry没有公共构造函数,因此Mock类型必须是接口,抽象或非密封类。

EntityEntry ee = new EntityEntry(); //NOT
_entityEntryMock = new Mock<EntityEntry>(); //NOT

最佳答案

如果不作任何详细说明,我不能说这是否对您特别有意义,但是当我遇到这样的情况(一个我无法用Moq嘲笑并且无法构建的类)时,我会大声疾呼与隔离框架。我通常使用Moles,但是还有其他选择,例如Typemock Isolator,并且我认为Moles本身在下一个.NET框架中被称为“ Fakes”的内置隔离器所取代。但是可以这么说,您正在尝试将Moq用于不希望做的事情-它只是“自然”地创建模拟,而没有充当隔离框架。

关于c# - 模拟EntityEntry NHibernate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9982810/

10-11 01:27