У меня есть следующий код настройки:
MockOf<IObjectSet<Dummy>>().Setup(c => c.AddObject(dummy)).Verifiable();
MockOf<IObjectContextWrapper>().Setup(c => c.GetObjectSet<Dummy>()).Returns(MockOf<IObjectSet<Dummy>>().Object);
, где Dummy
- пустое определение класса, а dummy
- Dummy
. MockOf<T>()
- это функция управления имитацией в базовом классе, которая в основном гарантирует, что каждый раз, когда он вызывается для типа, он возвращает один и тот же экземпляр макета.
Тест, содержащий этот код настройки, завершается с TypeLoadException
и следующим сообщением:
System.TypeLoadException: Тип 'IObjectSet`1Proxy389e220f10aa4d9281d0b9e136edc1d4' из сборки 'DynamicProxyGenAssembly2, Версия = 0.0.0.0, Культура = нейтральная, PublicKeyToken = a621a9e7eeeeeceeeeee)
в System.Reflection.Emit.TypeBuilder.TermCreateClass (модуль RuntimeModule, Int32 tk, тип ObjectHandleOnStack)
в System.Reflection.Emit.TypeBuilder.CreateTypeNoLock ()
в System.Reflection.Emit.TypeBuilder.CreateType ()
at Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType ()
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode (Тип интерфейсы proxyTargetType, Тип [], параметры ProxyGenerationOptions)
в Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget (Тип interfaceToProxy, Тип [] AdditionalInterfacesToProxy, Опции ProxyGenerationOptions, Перехватчики IInterceptor [])
в Moq.Mock 1.<InitializeInstance>b__0()<br>
at Moq.Mock
1.InitializeInstance ()
в Moq.Mock`1.get_Object ()
в OddEnds.Tests.Data.EntityFramework.RepositoryTest.Delete_DeletesObjectFromObjectSet () в RepositoryTest.cs: строка 43
Я импортировал System.Data.Objects
и ссылался на System.Data.Entity.dll и Microsoft.Data.Entity.CTP.dll как в тестовом проекте, так и в проекте, где находится тестируемый класс. Сборка завершается успешно без ошибок, предупреждений или сообщений (кроме нескольких, связанных с контрактами кода ...)
Как это исправить?