这个Moq代码在RhinoMocks中会是什么样子

时间:2009-06-20 01:00:10

标签: c# asp.net-mvc mocking rhino-mocks moq

嘿人们......试图让我的模拟与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 个答案:

答案 0 :(得分:10)

如果您使用的是stub方法而不是SetupResult方法,那么语法如下:

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

答案 1 :(得分:3)

正如我上面提到的,草皮法,一旦你发帖求助,你会在5分钟后找到它(甚至在寻找一段时间之后)。无论如何,为了其他人的利益,这是有效的:

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

答案 2 :(得分:1)

除非我误读了代码,否则我认为你可以简化这一点。试试这个:

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

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