8

嘿人们...试图让我的嘲笑与 asp.net MVC 排序。

我在网上找到了这个使用 Moq 的示例,基本上我理解它的意思是:调用 ApplyAppPathModifier 时,返回传递给它的值。

我不知道如何在 Rhino Mocks 中做到这一点,有什么想法吗?

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

3 回答 3

10

如果您使用的是存根方法而不是 SetupResult 方法,则其语法如下:

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything))
                .Do(new Func<string, string>(s => s));
于 2009-09-08T08:49:09.263 回答
3

正如我上面提到的,草皮法,一旦你发帖寻求帮助,你会在 5 分钟后找到它(即使搜索了一段时间)。无论如何,为了他人的利益,这是可行的:

SetupResult
    .For<string>(response.ApplyAppPathModifier(Arg<String>.Is.Anything)).IgnoreArguments()
    .Do((Func<string, string>)((arg) => { return arg; }));
于 2009-06-20T02:19:36.237 回答
1

除非我误读了代码,否则我认为您可以将其简化很多。试试这个:

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

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything)) 
                        .IgnoreArguments()
                        .Return(virtualPath);
于 2009-06-20T01:58:19.773 回答