2009-08-11 25 views

Respuesta

13

Aquí está la respuesta simple

Bind<IMyType>().ToConstant<MyType>(new MyType()); 

Así que aquí hay un ejemplo usando Moq:

var mock = new Mock<IMyType>(); 
//Setup your mock expectations/etc here. 
//... 
Bind<IMyType>().ToConstant(mock.Object); 

Bono respuesta:

Me parece que algunas personas son en realidad sólo buscan para crear una instancia singleton de una clase en particular, en lugar de crear ellos mismos (esto permite que el objeto se cree cuando algo lo solicita, en lugar de cuando está construyendo su contenedor). Esto se hace así:

Bind<IMyType>.To<MyType>().Using<SingletonBehavior>(); 

En su caso, ya que dijo la palabra "simulacro", yo asumiría que querría el primer lugar de la segunda respuesta, pero es una buena cosa para saber.

+0

usando Moq ... var mock = new Mock (); Enlazar () .ToConstant (simulacro); ConstantProvider crearía una instancia de Mock , que no es compatible con el servicio solicitado – Ryu

+0

que necesita para pasar en MyMock.Object, no el simulacro en sí :) –

+0

Voy a actualizar la muestra anterior con el código que necesita –

2

No estoy seguro de qué tipo de herramienta de burla, si existe, o versión de Ninject está utilizando; sin embargo, vale la pena mencionar que Ninject 2 tiene una extensión que proporciona integración con Moq - http://github.com/enkari/ninject.moq.

Me doy cuenta de que esto no responde directamente a su pregunta, Anderson's lo hace bien, pero pensó que podría ser relevante de todos modos.

+0

Nice! Eso podría ser realmente lo que está buscando. –

+0

Sí, se ve bien, todavía no lo he usado, pero espero hacerlo pronto. –

Cuestiones relacionadas