我必须对下面一行代码中断的方法进行单元测试:
m_context.ApplicationInstance.CompleteRequest()
这里,m_context
是System.Web.HttpContext
对象,我已将其初始化为: -
var m_context= new HttpContext(new HttpRequest("", "https://www.google.com", ""), new HttpResponse(new StringWriter()));
httpContext.ApplicationInstance = new HttpApplication();
由于CompleteRequest()
类的HttpApplication
不是虚拟或抽象方法,有人可以帮我解决这个问题Unittest
。
答案 0 :(得分:0)
我之前发现了以下博客,它解释了使用Microsoft Moles
的一个很好的方法。
http://maraboustork.co.uk/index.php/2011/03/mocking-httpwebresponse-with-moles/
IMHO通过扩展HttpApplication
添加功能并不是最好的选择。由于私有/内部/密封类很难模仿HttpContext
,即使你成功了,你的单元测试也会因为模拟代码而变得混乱,以至于你将无法理解你实际测试的是什么