2012-04-10 21 views
10

Estoy tratando de usar Moq para asignar una propiedad cuando se llama a un método.Usando Moq para asignar valor a la propiedad cuando se llama al método

Algo a lo largo de las líneas de:

Mock<ITimer> mock = new Mock<ITimer>(); 
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true); 

¿Es posible el uso Moq para establecer un valor de la propiedad se espera cuando un método se llama

+0

Sin duda debe ser. Sé que Rhino hará esto, así que si Moq no lo hace, sería sorprendente. Estoy seguro de que esto es solo una mezcla de método de configuración o algún otro problema de uso. Pero no conozco a Moq, así que dejaré que alguien más conocedor responda la pregunta. – KeithS

Respuesta

13

Asumo que está intentando realizar esencialmente una nueva configuración () en tu Mock cuando se llama al método? Si es así, usted debería ser capaz de hacerlo con una devolución de llamada, así:

Mock<ITimer> mock = new Mock<ITimer>(); 
mock.Setup(x=>x.Start()).Callback(() => mock.SetupGet(y => y.Enabled).Returns(true)); 

Es feo, pero debe hacer el truco.

+2

Gracias que lo hice aunque fui con el simulacro.Configuración (x => x.Start()). Rellamada ((=) simulacro.Configuración (x => x.Enabled) .Returnos (verdadero)); – Jon

Cuestiones relacionadas