Moqing HttpContext

时间:2013-08-12 08:34:21

标签: asp.net .net asp.net-mvc-4 moq

我有一个测试MVC控制器结果的单元测试。不幸的是,控制器使用了使用HttpContext.Request.IsLocal的第三方库。我无法重构第三方库以使其使用HttpContextBase

我需要模拟这个,以便HttpContext.Request.IsLocal返回true。关于如何实现这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

如果您使用的是高级版或更高版本的vs2012,请尝试查看microsoft.fakes。它应该适应你的情况。

一些阅读:

http://msdn.microsoft.com/en-us/library/hh549175.aspx

答案 1 :(得分:0)

虽然接受的解决方案适合您,但是有一些缺点,例如依赖于VS测试运行器,我在这里和那里使用nUnit(或其他框架)时遇到的一些问题,难以像构建服务器一样运行这些测试TeamCity等。

恕我直言,更好的方法是通过自己的填充程序/包装器隔离第三方lib,而不是直接在代码中使用静态方法。

是的,这是一个更多的工作,但是,如果以后你需要升级或替换第三方库,它会更容易 - 你只会修改包装器,而你的代码不会受到影响。< / p>

相关问题