我正在使用Moq創建HttpResponseBase的模擬對象。我需要能夠測試HttpResponseBase.End()在我的庫中被調用。爲此,我在通話之前指定了一些文字,之後再指定了一些文字。然後我檢查HttpResponseBase.Output中只有調用End()之前的文本。如何模擬HttpResponseBase.End()?
問題是,我想不出如何模擬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;
}
謝謝!設置一個標誌聽起來像是最簡單的方法。 – 2009-07-26 15:30:39