FakeItEasy - 无法伪造来自HttpResponse的ApplyAppPathModifier

时间:2014-05-21 13:11:39

标签: mocking moq fakeiteasy

在我的项目中,我们想要模拟UrlHelper来测试控制器的动作。我找到了允许我这样做的代码,不幸的是它是用Moq编写的:link

有一条线,在FIE中我不知道要更换热线:

response.Setup(s => s.ApplyAppPathModifier(It.IsAny<string>())).Returns<string>(s => s);

抛出System.NotImplementedException:

A.CallTo(() => response.ApplyAppPathModifier(A<string>.Ignored)).CallsBaseMethod();

这将从Url.Action返回空字符串:

A.CallTo(() => response.ApplyAppPathModifier(A<string>.Ignored)).Returns("");

当我从代码中删除该行时,Url.Action也会返回空字符串。

我不想使用2个不同的模拟库,但我没有看到任何替换它的可能性。使用Moq的MvcMockHelpers没有问题。

1 个答案:

答案 0 :(得分:4)

根据documentationReturnsLazily会做同等的事情:

A.CallTo(() => response.ApplyAppPathModifier(A<string>.Ignored))
 .ReturnsLazily((string s) => s);