问题标签 [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.
azure - 使用 Microsoft Fakes 模拟 Azure RoleEnvironment API
我正在尝试使用 Microsoft Fakes 模拟 Azure RoleEnvironment API。问题是我找不到安排垫片/存根的方法,以便我可以在单元测试中练习代码。
例如,假设我有以下代码:
我将如何用 Fakes 模拟上述内容,以便我可以在单元测试中运行它?
到目前为止,我的尝试失败了,因为 RoleInstance 类似乎具有带有内部设置器的抽象属性,这阻止了我从 RoleInstance 派生类。这反过来又阻止了我为 RoleEnvironment.CurrentRoleInstance 提供 shim。
顺便说一句,我完全清楚过度依赖假货会被认为是有害的。问题是,我已经有了 RoleEnvironment 的包装器,以及生产和测试实现。我试图模拟的代码在我也想测试的生产实现中。
c# - 如何使用 Microsoft Fakes 引用具有自身通用参数的存根?
我在我正在处理的一些单元测试中使用 Microsoft Fakes。我的界面如下所示:
一个典型的实现如下:
我想将此界面与 Microsoft Fakes 一起使用,并让它为我生成一个存根。问题是,Fakes 使用的形式是StubInterfaceNameHere<>
,所以在上面的例子中,你最终会尝试做类似的事情StubISecuredItem<StubISecuredItem<StubISecuredItem<StubISecuredItem....
这可能吗?如果是这样,我如何以这种方式使用假货?
visual-studio - 是否会像 Moles 一样在 Visual Studio 的“Ultimate”版本之外提供 Fakes?
有谁知道是否有意在低于 Ultimate 的 Visual Studio 版本上提供 Fakes?
假货似乎被宣传为取代 Moles,但如果它只能在 Ultimate 中使用,大多数 Moles 用户将无法使用它。
c# - 使用带有工厂实例方法的 Microsoft Fakes
我有一个看起来像这样的类:
}
然后,我想制作一个垫片并想使用 IsBigger 方法,但默认情况下它返回 false。在这种情况下如何调用基本方法?
测试是这样的:
unit-testing - 可以将 MS Fakes 垫片与 NSubstitute 模拟一起使用吗?
我们使用NSubstitute模拟单元测试的外部对象。然而,许多遗留类不是通过接口调用的,也不能轻易地用模拟替换。
我考虑过使用Microsoft Fakes,但根据“Mock framework vs MS Fakes frameworks ” 问题的答案
“如果您已经在使用功能更全面的模拟框架,您可能会觉得 Fakes 存根中缺少一些重要的部分。”
是否可以在相同的测试中使用带有 NSubstitute 模拟的 MS Fakes 垫片?
我们应该期待任何兼容性问题吗?
microsoft-fakes - 为什么 Microsoft.Fakes 中没有接口存根
我即将在我的单元测试中使用 Microsoft.Fakes。我阅读了一个教程,其中 Microsoft.Fakes 为接口创建存根(在解决方案中实现),但在我的解决方案中存根仅适用于类。
你能告诉我我应该怎么做才能得到所有插曲的存根。接口和类都被定义为公共的。
c# - 尝试将方法组作为参数传递
使用 Microsoft fakes 我在我的存根对象中有以下方法签名:
这是这个真实的存根方法:
我想做的是通过使用此方法为存根方法分配自定义内容:
我遇到的问题是我无法理解 StubMethod 的签名应该是什么,我该如何称呼它?
我尝试了几件事,导致我“无法分配方法组/无法转换方法组”。
顺便说一句 - 它与其他更简单的存根方法完美配合,如下所示:
所以它必须是定义问题......
这是我在代码中使用 GetAll 的地方......这应该重定向到我的自定义函数:
另一种看待问题的方法是我想替换它:
有了这个:
unit-testing - 在单元测试期间实例化 MVC 控制器时出现 VerificationException
我正在使用 进行一些单元测试,并且在添加假程序集Microsoft Fakes Framework
之前一切正常。System.Web.Mvc
从那一刻起,每当我尝试在单元测试中初始化控制器时,VerificationException
都会抛出 a 。当我删除 Fake 程序集引用时,一切正常。但是,我需要这个假的来填充一个对象的Action
方法。UrlHelper
我在 SO 上看到了一些链接,但它们主要是关于FluentValidation的,这对我没有帮助。此外,Rich Czyzewski的一篇出色的文章,ASP.NET MVC4 中的非侵入性单元测试 - Microsoft Fakes Deep Dive,并没有帮助,因为我完全不知道他是如何设法实例化UrlHelper
的。我遵循了他展示的相同示例,但UrlHelper
构造函数也抛出VerificationException
了。
除了 Rich 的存根,我还添加了HttpResponseBase
,HttpSessionBase
等来创建类似的场景,可以在Scott Hanselman的博客、 Mix08 的ASP.NET MVC Session、TDD 和 MvcMockHelpers 上找到,但仍然没有运气。
有没有人设法解决这个问题以及如何解决?
在此先感谢大家!
c# - 微软只伪造静态类的存根静态属性
是否可以使用 Microsoft Fakes 框架在静态类中填充静态属性?
如果不是,为什么存根可以工作,而垫片却不行?
这是我的课程代码:
这是我的测试代码:
unit-testing - 带有 SQL 代码的 ac# 方法上的 Microsoft Fakes(Shims 和/或 Stubs)
我正在尝试更多地了解单元测试,使用开箱即用的功能(我相信它是 MSTest.exe)和 Microsoft Fakes(存根和垫片)。
我正在使用 Visual Studio 2012 Ultimate 和 .Net 4.5 Framework。
给定以下代码,该代码调用返回单个输出值的存储过程 (SQL Server)(为简单起见):
- 是否可以使用垫片和/或存根对其进行测试,以便将输出值设置为特定值?
- 如果有怎么办?
- 我什至应该为此使用单元测试吗?
我已按照本教程进行操作,并设法理解并使其适应星期几。
正如一位 MS 员工所说,我正在等待VS2012数据库单元测试功能在 2012 年底可用(或恢复),以便可以单独测试数据库。