Как будет выглядеть этот код Moq в RhinoMocks - PullRequest
8 голосов
/ 20 июня 2009

Эй, люди ... пытаясь разобраться в моем насмешке с asp.net MVC.

Я нашел этот пример в сети, используя Moq, в основном я понимаю, что он говорит: когда вызывается ApplyAppPathModifier, возвращает значение, которое было ему передано.

Не могу понять, как это сделать в Rhino Mocks, есть мысли?

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

Ответы [ 3 ]

10 голосов
/ 08 сентября 2009

Если вы используете метод-заглушку, а не метод SetupResult, то синтаксис этого ниже:

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything))
                .Do(new Func<string, string>(s => s));
3 голосов
/ 20 июня 2009

Как я уже упоминал выше, закон о защите от спама, когда вы отправляете сообщение о помощи, находит его через 5 минут (даже после поиска в течение некоторого времени). Во всяком случае, в интересах других это работает:

SetupResult
    .For<string>(response.ApplyAppPathModifier(Arg<String>.Is.Anything)).IgnoreArguments()
    .Do((Func<string, string>)((arg) => { return arg; }));
1 голос
/ 20 июня 2009

Если я неправильно читаю код, думаю, вы можете немного упростить это. Попробуйте это:

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

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything)) 
                        .IgnoreArguments()
                        .Return(virtualPath);
...