Pregunta

Hola gente ... tratando de arreglar mi burla con asp.net MVC.

He encontrado este ejemplo en la red usando Moq, básicamente entiendo que diga: cuando se llama a ApplyAppPathModifier, devuelve el valor que se le pasó.

No puedo entender cómo hacer esto en Rhino Mocks, ¿alguna idea?

var response = new Mock<HttpResponseBase>();
response.Expect(res => res.ApplyAppPathModifier(It.IsAny<string>()))
            .Returns((string virtualPath) => virtualPath);
¿Fue útil?

Solución 2

Como mencioné anteriormente, la ley de mierda, una vez que publicas ayuda, la encuentras 5 minutos después (incluso después de buscar por un tiempo). De todos modos, en beneficio de otros, esto funciona:

SetupResult
    .For<string>(response.ApplyAppPathModifier(Arg<String>.Is.Anything)).IgnoreArguments()
    .Do((Func<string, string>)((arg) => { return arg; }));

Otros consejos

Si está utilizando el método de código auxiliar en lugar del método SetupResult, la sintaxis para esto es la siguiente:

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything))
                .Do(new Func<string, string>(s => s));

A menos que esté leyendo mal el código, creo que puedes simplificarlo un poco. Prueba esto:

var response = MockRepository.GenerateMock<HttpResponseBase>();

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything)) 
                        .IgnoreArguments()
                        .Return(virtualPath);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top