关于c#:模拟EntityEntry NHibernate

Mock EntityEntry NHibernate

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

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

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

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