嘿人们......试图让我的模拟与asp.net MVC分类。
我在网上使用Moq发现了这个例子,基本上我理解它说:当调用ApplyAppPathModifier时,返回传递给它的值。
我无法弄清楚如何在Rhino Mocks中做到这一点,有什么想法吗?
var response = new Mock<HttpResponseBase>();
response.Expect(res => res.ApplyAppPathModifier(It.IsAny<string>()))
.Returns((string virtualPath) => virtualPath);
答案 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);