我正在使用Moq创建HttpResponseBase的模拟对象。我需要测试我的库中是否调用了HttpResponseBase.End()方法。为此,我在调用之前和之后指定一些文本,然后检查HttpResponseBase.Output中是否只存在调用End()之前的文本。
问题是,我无法弄清楚如何模拟HttpResponseBase.End()以停止处理,就像在ASP.NET中一样。
问题是,我无法弄清楚如何模拟HttpResponseBase.End()以停止处理,就像在ASP.NET中一样。
public static HttpResponseBase CreateHttpResponseBase() {
var mock = new Mock<HttpResponseBase>();
StringWriter output = new StringWriter();
mock.SetupProperty(x => x.StatusCode);
mock.SetupGet(x => x.Output).Returns(output);
mock.Setup(x => x.End()) /* what do I put here? */;
mock.Setup(x => x.Write(It.IsAny<string>()))
.Callback<string>(s => output.Write(s));
return mock.Object;
}