如果你想有一个更详细的答案,这里是我在项目结束后做:
_mockResponse = new Mock<HttpResponseBase>();
_contentType = string.Empty;
_mockResponse.SetupSet(r => r.ContentType = It.IsAny<string>()).Callback<string>(value => _contentType = value);
_header = new KeyValuePair<string, string>();
_mockResponse.Setup(r => r.AddHeader(It.IsAny<string>(), It.IsAny<string>())).Callback((string name, string value) => _header = new KeyValuePair<string, string>(name, value));
_writer = new StringBuilder();
_mockResponse.Setup(r => r.Write(It.IsAny<string>())).Callback<string>(s => _writer.Append(s));
var data = "This is the string to send as response";
UTIL.SendStringAsHttpResponse(data, _mockResponse.Object);
Assert.That(_contentType, Is.EqualTo("application/CSV"));
Assert.That(_header.Value, Is.EqualTo("attachment; filename=download.csv"));
Assert.That(_writer.ToString(), Is.EqualTo(data));
其中SendStringAsHttpResponse被定义为
public static void SendStringAsHttpResponse(string data, HttpResponseBase response)
感谢所有好的答案。我会让你知道我最终做了什么。 – 2009-09-02 16:30:45