ASP.NET MVC でカスタム ActionFilter の単体テストを書いているところです。
すべて正常に動作しますが、単体テストで奇妙な動作が発生しています。コレクションAppendHeader
を変更しないようです。HttpResponseBase.Headers
次のコードをデバッグすると、コレクションには と の 2 つのアイテムしかありませ"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" } });
誰かがこれに光を当てて、なぜこれがそのように振る舞うかを説明できますか?
AppendHeader
ActionFilter を使用して Web サイトを実行すると、ヘッダーが取得されます。したがって、通常は機能しますが、前述したように、HttpResponseBase.Headers
テスト用のコレクションにはありません。