2012-09-27 11 views
10

Mam uruchomiony kod z jednością.Jak używać Unity.RegisterType z Moq?

Teraz chcę użyć Moq do testowania moich jednostek dla ASP-MVC. w Kodeksie global.asax jest, mam następujący:

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

Teraz Pisałem testcode z Min:

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

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

ale to nie działa.

Błąd: typu „Moq.Mock” ​​nie może być używany jako typ parametru „tto” w ogólnym typie lub metodzie „Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType ... Nie ma niejawna konwersja referencyjna od "Moq.Mock" do "IFoo"

Odpowiedz

13

Próbujesz zarejestrować obiekt próbny, a nie obiekt wyszydzany.

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

to działa, dziękuję – boqus

Powiązane problemy