如何为 FakeItEasy 构建 HttpResponseHeaders

KVN*_*KVN 6 .net c# unit-testing http-headers fakeiteasy

我正在使用 C#,我需要测试接受 System.Net.Http.Headers.HttpRequestHeaders 作为参数的方法之一。我们使用 FakeItEasy 进行测试。

但似乎 HttpResponseHeaders - 没有构造器(并且它是密封的),并且它使用 HttpHeader 作为基础。HttpHeader - 有构造函数,但 Header 属性只允许 get。

有没有办法构建虚拟/假的 HttpResponseHeaders 或 HttpResponseMessage 并在其中预设所需的标头值?

Bla*_*rad 18

FakeItEasy无法伪造密封类也无法从没有可访问构造函数的类中创建虚拟类,但您可以尝试以下操作:

var message = new HttpResponseMessage();
var headers = message.Headers;
headers.Add("HeaderKey", "HeaderValue");
Run Code Online (Sandbox Code Playgroud)

仅仅因为它们Headers是仅获取的并不意味着您不能改变列表。