加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 无法在单元测试中检查响应标头

发布时间:2020-12-16 06:42:32 所属栏目:asp.Net 来源:网络整理
导读:我有一个Http处理程序的单元测试.在其中我创建了一个HttpResponse对象并将其传递给我的一个Http处理程序的方法. 我的一个测试尝试验证响应标头是否已正确设置: Assert.AreEqual( "gzip",response.Headers["Content-Encoding"]); 但是,Headers属性会抛出Plat
我有一个Http处理程序的单元测试.在其中我创建了一个HttpResponse对象并将其传递给我的一个Http处理程序的方法.

我的一个测试尝试验证响应标头是否已正确设置:

Assert.AreEqual( "gzip",response.Headers["Content-Encoding"]);

但是,Headers属性会抛出PlatformNotSupportedException,并显示消息“此操作需要IIS集成管道模式”.

奇怪的是,据我了解,该异常与设置响应标题有关 – 而不是阅读它们.我正在使用TDD,所以我没有在任何地方设置标题(但是),但我仍然得到例外.

为什么我会收到此异常,是否有一个好的或更好的单元测试响应标头的方法?

解决方法

从 Response.Headers documentation:

Remarks

The Headers property is only supported
with the IIS 7.0 integrated pipeline
mode and at least the .NET Framework
3.0. When you try to access the Headers property and either of these
two conditions is not met,a
PlatformNotSupportedException is
thrown.

除非你在这些条件下运行,否则基本上你甚至无法尝试访问它.

如果我是你,我会为你的Handler创建一个接受HttpContextBase对象和use a mock的构造函数,以便正确测试你的头文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读