问题标签 [microsoft-fakes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - Visual Studio 2012 Fakes 不会为具有 Stream 返回类型的方法的接口生成存根
使用 Visual Studio 2012 生成带有“Add Fakes Assembly”的存根,一切都按预期工作,除了无法为此接口生成存根:
当我将 Stream 更改为 FileStream 时(因为 Stream 是一个抽象类,我想检查这是否只发生在抽象类中),我仍然无法生成。当我完全删除方法签名(即删除Stream OpenReadStream(string path);
)时,我能够生成存根。
这是我的 .fake 文件内容:
- 知道为什么会发生这种情况,我该如何避免?
- 应该有一个 Visual Studio 输出面板,其中将显示 Fake 生成结果。我看不到任何东西,它们也没有显示在常规构建面板中。我可以在哪里找到它的任何想法?我搜索了所有 VS 2012 菜单。
unit-testing - Moles/Fakes:如何实施测试设置?
我最近一直在与 Moles 合作,现在我正在转向 Fakes。在我的旧测试项目中,我有一个测试设置,如下所示:
在那里我做了一些必要的设置,就像设置我的一些痣对象一样。
摩尔中的测试方法看起来像那样(还有 [HostType("Moles")] 指定它使用摩尔对象。
现在,在 Fakes 中,他们不再使用 HostType 属性。相反,他们使用 ShimsContext,您可以在其中使用“模拟”类。它看起来像这样:
如果您不使用此上下文,您可能会收到一条错误消息。它基本上说 FakesTestMethod 中有一个 ShimInvalidOperationException,您必须按照下面描述的方式使用 ShimsContext.Create()
所以我试图把我的设置调用放到那个上下文中,结果是这样的:
现在,如果我在我的 Setup 方法中使用这个上下文,那么在那里完成的所有设置都将在之后用完上下文,并且当单元测试实际上即将运行时将不再有效,这并不是我真正想要的一种测试设置方法。
我通过将 using 放入测试方法本身并在此上下文中和测试代码之前调用私有设置方法来解决此问题。这个 setup 方法现在完成了所有的处理,这在 [TestInitialize] setup 方法之前做了。代码看起来像这样:
我现在对这个问题的问题是,这个解决方案完全“扼杀”了 [TestInitialize] 设置方法的想法。我必须将此代码复制到每个测试方法中,最重要的部分是:在此 Setup() 方法中创建的对象将为每个测试创建和销毁,这根本不理想!
有没有其他方法可以在 Fakes 中设置测试数据?任何帮助表示赞赏!
msbuild - 从 MSTest 或 Resharper 运行测试时出现 ShimNotSupportedException
我目前正在使用 Microsoft Visual Studio 2012 和新的 Fakes 框架。在将我的单元测试添加到 MSBuild 和持续集成过程之后,Fakes 单元测试恰好引发了 ShimNotSupportedException。
我尝试了不同的东西并阅读了该问题并发现,这只发生在我从 Resharper 功能运行我的测试时,或者直接在使用 MSTest 的代码中。从测试菜单栏运行时不会发生这些异常,这让我想到检查此功能的设置文件。
经过进一步研究,我发现一些文章说它可能与 Resharper 或 MSTest 设置中指定的代码覆盖率设置有关,如果您将其关闭,它可以解决问题。MS VisualStudio 2012 中的 ShimNotSupportedException也与该问题有关。
我还在 MSDN 上找到了一些关于该问题的输入,这证实了我必须对代码覆盖率做一些事情:http: //social.msdn.microsoft.com/Forums/en-US/vstest/thread/17fcfdc6- 1cda-4692-a242-656b48195327/和http://social.msdn.microsoft.com/Forums/en-US/vstest/thread/bfa792b0-b3fc-4a51-b49d-f7aaf1f2f4b8。
尽管如此,由于我必须尽快以某种方式在持续集成过程中实现代码覆盖,并且跳过该部分不是一个选项,所以我现在在这里询问有关此问题的任何建议,以及是否有任何解决该问题的方法!
感谢所有建议!
code-contracts - 是否有任何可用于使用代码合同、Pex 和“假”框架的最佳实践/指南?
是否有任何可用于使用代码合同、Pex 和 Fake 框架的最佳实践/指南?无法找到将所有 3 个组合在一起的具体可用的东西。
unit-testing - 使用 Microsoft Fakes 填充带有 ref 参数的方法
我的旧版(不可测试)dll 中有一个带有 ref 参数的静态方法。我正在尝试为调用此方法的类编写单元测试。
我需要帮助为此调用编写 shim 语句
谢谢!
c# - 无法使用 Fakes 程序集构建项目
我已经在我的 Visual Studio 2012 单元测试项目中添加了一个 Fakes 程序集,对应于我的应用程序项目(被测系统),如Peter Provost 的文章中所述。但是,由于生成的 Fakes 代码中存在未解析的类型引用,该项目将不再构建:
这里出了什么问题?据我所知,这应该可以正常工作,所以在我看来,Fakes 设施中存在错误。
visual-studio-2010 - 如何解决 VS2012 Fakes 框架中的方法名冲突
我正在使用 VS2012 Fakes 和 MSTEST 框架进行单元测试。我有第三方 dll,我需要伪造它。但是,dll 中有一个方法 (getItemAt(int)) 似乎与 Fakes 中存在的方法冲突。
我在编译期间收到的错误消息是:
错误 2 'MyObject.Fakes.ShimList' 类型已经包含 'get_ItemAtInt32' 的定义 [D:\Dev\Test\obj\Debug\Fakes\o\f.csproj] D:\Dev\Teste\f.cs 6933 111测试
有什么解决方案可以绕过此错误以继续使用 Fakes?
c# - 如何从 Visual Studio 2012 项目中删除 Fakes 程序集?
我已通过“添加 Fakes 程序集”参考上下文菜单选项将Fakes 程序集添加到 Visual Studio 2012 C# 单元测试项目。完全删除 Fakes 程序集的程序是什么,即撤消我将其添加到项目中的过程?
c# - 我可以伪造 HttpContent.ReadAsAsync?
是否可以在Microsoft Fakes的帮助下(在 Visual Studio 2012 中)创建一个实现HttpContent.ReadAsAsync<T>的存根?如果是这样,怎么做?
.net - Microsoft Fakes 和 .Net 4.0
我们一直在研究使用新的Fakes 框架来帮助我们增加在 .net 4.0 框架下运行的一些遗留代码的测试覆盖率。不幸的是,我们似乎无法升级到 .net 4.5。我是否正确地说我们不能在 .net 4.0(和 VS2012)中使用 Fakes 框架,而我们需要使用现在不受支持的 Moles 框架?