我正在使用MVP模式处理ASP.NET WebForm应用程序。对于每个Web窗体,都有一个与处理UI和业务逻辑相关联的Presenter类。但是,在为演示者编写单元测试时遇到问题,因为会话值在演示者中使用。并且在执行单元测试期间不存在HTTP上下文(BTW我使用nUnit),因此无法为演示者编写单元测试。
任何人都可以解释如何对这些演示者进行单元测试吗?
谢谢
答案 0 :(得分:1)
您可以模拟或存根IHttpContext并让您的框架注入真正的HttpContext,或者您可以将会话,cookie,...状态包装在一些接口后面,或者您可以使用Pex中的“Moles”,接口是这里解释http://haacked.com/archive/2007/09/09/ihttpcontext-and-other-interfaces-for-your-duck-typing-benefit.aspx
答案 1 :(得分:1)
您可以更改Presenter类以依赖HttpContextBase。完成后,您可以向演示者类提供模拟版本的HttpContext以进行测试。在生产中,您只需提供HttpContext.Current属性。
答案 2 :(得分:1)
干杯