2012-09-27 14 views
10

Birlik ile çalışan bir kod var.Unity.RegisterType, Mq ile nasıl kullanılır?

Şimdi birimimde ASP-MVC için sınama yapmak için Moq kullanmak istiyorum. Global.asax kodunun içinde , ben şu var:

IUnityContainer container = new UnityContainer(); 
container.RegisterType<IFoo, Foo>(new InjectionConstructor("xxx")); 

Şimdi MOQ ile deneme kodunda yazdı:

IUnityContainer container = new UnityContainer(); 
var mockFoo = new Mock<IFoo>(); 

container.RegisterType<IFoo, mockFoo) >(new InjectionConstructor("xxx"));

ama bu işe yaramaz.

hatası: türü 'Moq.Mock' genel türü veya yöntem 'vardır Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType ... örtülü hiçbir referans dönüştürme türü parametre 'TTO' olarak kullanılamaz 'Moq.Mock' öğesinden 'IFoo' a (

)

cevap

13

Sahte nesneyi değil alay nesnesini kaydetmeye çalışıyorsunuz.

var mock = new Mock<IFoo>(); 
container.RegisterInstance<IFoo>(mock.Object); 
+0

bu çalışma, teşekkürler – boqus