我正在为来自NHibernate的EntityEventListener
做一些单元测试,而我却试图模仿FlushEvent
或EntityEntry
。
由于EntityEntry没有公共构造函数,因此类型Mock必须是接口,抽象或非密封类。
EntityEntry ee = new EntityEntry(); //NOT
_entityEntryMock = new Mock<EntityEntry>(); //NOT
答案 0 :(得分:2)
如果没有详细说明,我不能说具体是否对你有意义,但是当我遇到这样的情况时(一个我不能用Moq模拟而且我无法建立的类),我打电话给具有隔离框架的大枪。我通常使用Moles,但还有其他选项,如Typemock Isolator,我认为Moles本身在下一个.NET框架中被替换为内置隔离器,名为“Fakes”。但是可以说,你试图将Moq用于它不打算做的事情 - 它只是“自然地”创建模拟而不用作隔离框架。