Jam*_*ruk 8 .net c# asp.net unit-testing
我正在尝试为一个以HttpResponse对象作为参数的方法创建单元测试.这样做的正确方法是什么?我希望你经验丰富的单位测试人员可以帮助我.
附加信息: 我尝试通过传入StringWriter创建一个假的HttpResponse对象.
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HttpResponse response = new HttpResponse(sw);
RssGenerator.Generate(response, otherParameters);
Run Code Online (Sandbox Code Playgroud)
测试失败并显示以下消息: System.Web.HttpException:使用自定义TextWriter时,OutputStream不可用. 正在测试的方法是类库dll的一部分.它使用Response对象的OutputStream来创建带有XMLWriter的RSSFeed.
Fra*_*man 12
需要使用命名空间System.Web.Abstractions
特别是,将HttpResponseBase(http://msdn.microsoft.com/en-us/library/system.web.httpresponsebase.aspx)作为输入参数而不是HttpResponse.然后你可以从测试中模拟HttpResponseBase.当你有一个真正的HttpResponse传入时,使用HttpResponseWrapper生成一个HttpResponseBase.