What would this Moq code look like in RhinoMocks

2019-04-07 00:12发布

Hey people... trying to get my mocking sorted with asp.net MVC.

I've found this example on the net using Moq, basically I'm understanding it to say: when ApplyAppPathModifier is called, return the value that was passed to it.

I cant figure out how to do this in Rhino Mocks, any thoughts?

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

3条回答
Lonely孤独者°
2楼-- · 2019-04-07 00:28

If you are using the stub method as opposed to the SetupResult method, then the syntax for this is below:

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything))
                .Do(new Func<string, string>(s => s));
查看更多
Bombasti
3楼-- · 2019-04-07 00:29

Unless I'm misreading the code, I think you can simplify that down quite a bit. Try this:

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

response.Stub(res => res.ApplyAppPathModifier(Arg<String>.Is.Anything)) 
                        .IgnoreArguments()
                        .Return(virtualPath);
查看更多
等我变得足够好
4楼-- · 2019-04-07 00:32

As I mentioned above, sods law, once you post for help you find it 5 min later (even after searching for a while). Anyway for the benefit of others this works:

SetupResult
    .For<string>(response.ApplyAppPathModifier(Arg<String>.Is.Anything)).IgnoreArguments()
    .Do((Func<string, string>)((arg) => { return arg; }));
查看更多
登录 后发表回答