¿Cómo se vería este código Moq en RhinoMocks?
-
06-07-2019 - |
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);
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);