我一直在为 ASP.NET MVC 中的自定义 ActionFilter 编写单元测试。
一切正常,但我的单元测试中有一个奇怪的行为。AppendHeader
似乎没有修改HttpResponseBase.Headers
集合。当我调试以下代码时,我的集合中只有两个项目:"A"
和"C"
.
var responseStub = new Moq.Mock<HttpResponseBase>();
responseStub.Setup(r => r.Headers)
.Returns(new WebHeaderCollection { { "A", "A" } });
var response = responseStub.Object;
response.AppendHeader("B", "B");
response.Headers.Add(new NameValueCollection { { "C", "C" } });
有人可以对此有所了解并解释为什么会这样吗?
如果我在我的 ActionFilter 中运行网站AppendHeader
,我会得到标题。所以它通常有效,但正如我所说,我在我的HttpResponseBase.Headers
收藏中缺少它进行测试。