【发布时间】:2013-08-12 08:34:20
【问题描述】:
我有一个单元测试来测试 MVC 控制器的结果。不幸的是,控制器使用了使用HttpContext.Request.IsLocal 的第三方库。我无法重构第三方库以使其使用HttpContextBase。
我需要对此进行模拟,以便 HttpContext.Request.IsLocal 返回 true。关于如何实现这一目标的任何想法?
【问题讨论】:
-
你就不能模拟出第三方库吗?不确定在您的单元测试中是否需要外部依赖项或任何依赖项。
-
问题是该方法是静态类中的静态方法,因此我唯一模拟它的方法是创建一个假 HttpContext
-
如果您使用的是高级版或更高版本的 vs2012,请尝试查看 microsoft.fakes。它应该适合您的情况
-
@Slicksim 这看起来会起作用。但是谷歌上的例子似乎有点缺乏。所以如果问的不是太多,是否可以举个例子?另外,如果您将此作为答案,我可以稍后将其标记为正确答案
-
对不起,我没有示例,我坚持使用专业版,我从阅读中知道这是 MS 打算使用 Microsoft.Fakes 的目的,以允许进行此类第三方测试。我可以想出一个例子,但要等到今晚我回到自己的桌面,上面有更好的 vs 版本
标签: asp.net .net asp.net-mvc-4 moq