问题标签 [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.
c#-4.0 - 无法使用对象为类制作通用假货
不能使用像这样的对象为类制作通用假货
该调用转到实际的代码实现。
但是当我们指定对象类型时,它正在工作
但是我需要所有对象的通用单一假货,因此无需为每个对象重复代码。
我的问题是为什么假的<object>
不起作用?因为它是所有类的父级。
请任何人帮助我:(
c# - 在构造函数中重构代码或存根/填充它?
我有一个我正在测试的方法。此方法的构造函数调用其基类构造函数,然后在其基类构造函数中设置一些成员,然后执行一个方法从数据库中获取数据,然后将一些数据库值设置为更多成员(所有这些都在构造函数中完成)。
为了测试我的原始方法,我是否应该在构造函数中删除对数据库的调用并对其进行重构,以便它只设置一些成员,然后我可以轻松地在我的测试中运行构造函数并存根所有正在传递的接口(在这种情况下为 1)或者我应该尝试在构造函数中填充进行数据库调用的方法?
this.clientCache.DBService.FetchFromDB(...) 方法正在调用另一个调用方法 FetchFromDB 的接口 DBService,此 fetchfromDb 方法转到 QSL 服务器并检索数据集。
这是我的测试方法。
c# - 从带有存根的接口设置属性
我正在创建一个存根接口并将其传递给我的测试方法,如下所示。我正在对传递给测试方法的接口(StubISeries)进行存根。如果comparisonSeries.Key
只是接口中的获取,我可以在存根中设置值而不向接口添加设置属性吗?
c# - 单元测试实体框架不会使用 shims 和 fakes 返回 100% 的覆盖率?
我正在尝试对存储库进行单元测试,但是发生的情况是,当我对其进行测试时,我没有获得 100% 的覆盖率,而是在该特定方法上获得了 0% 的代码覆盖率。
我想在不使用第三方框架的情况下进行测试,这就是我想使用 shims 和 fakes 的原因。
这是我要测试的课程:
这是测试类:
下面是测试方法:
我在 GetAll 方法上得到 0% 的代码覆盖率,我如何让它达到 100% 以及为什么它得到 0% ?
c# - 使用存根而不是具体对象作为参数
是否总是需要创建存根并将其作为参数传递给方法,即使我可以实例化传递给方法的对象而没有任何问题。
前任。我想在下面测试这个方法,它接受一个 TargetDataRanger 对象作为参数。我应该 a.) 将其存根并将其传递 b.) 打破依赖关系并将其放在接口后面,然后将其存根并将其传递给 c.) 实例化它并将其作为具体对象传递给方法。
在下面的这种情况下,我可以不使用具体对象,但这样做是否明智,它是否违反了一些测试规则或什么?
c# - 我是否使用垫片在我的测试方法中填充公共方法?
我仍在试图弄清楚 Microsoft Fakes 中的垫片的正确用途。我知道它适用于运行时方法拦截器,它允许您为几乎任何方法提供自己的实现,但让我问一个更单元测试类型的问题。在下面的方法中,我是否应该填充 PUBLIC STATIC 方法并存根可覆盖的方法 base.ResolveDate(comparisonSeries, targetDate)?我应该只测试里面ResolveDate()
的东西而不是别的吗?这似乎是您使用单元测试正确测试方法的方式。只需测试该方法,除非该方法嵌套了私有方法调用,在这种情况下,您将通过这些私有方法运行单元测试(根据 Roy Osherove 的“单元测试艺术”,您不会独立测试私有方法)。
c# - Microsoft Shims 无法调试被测方法
我有一个测试方法,当我运行它时它很好,但在调试时失败并出现异常。下面是 VS Test Runner 的测试方法和输出。异常来自 ShimsContext.Create()
信息:VS 2012 Permium Update2
c# - 我是否在我的测试方法中存根或填充一个方法?
我的base.ResolveDate()
测试方法中有一个来自基类及其公共和虚拟的方法。我想用我自己的方法来存根/填充这个方法,那么我应该存根还是填充?Stub 或 Shim,我该怎么做呢?根据我对 MS Fakes 的经验,它似乎是一个存根,因为存根只能影响可覆盖的方法。- ALM 2012
下面是测试方法:
这是我想要 Stub/Shim 的基类的方法?
c# - Visual Studio 2012 Fakes 缺少必需的参考
在过去的几个月里,我开始在 VS 2012 中使用 Fakes,最近遇到了我认为一定是 Fakes 框架中的错误。简而言之,我的 Fakes 文件生成的 f.crpoj 文件不包含对我的程序集之一的引用。发生这种情况时,不会生成 *.fakes.dll 文件,并出现以下错误:
类型“ MyType ”是在未引用的程序集中定义的。您必须添加对程序集“ MyAssembly , Version=0.1.0.0, Culture=neutral, PublicKeyToken= **”的引用。**ProjFolder \obj\Debug\Fakes\as\f.cs
我已经创建了测试解决方案,但无法在我复杂的解决方案之外重现此问题。有些东西使 Fakes 生成器无法包含所有程序集。我的 Fakes 文件没有自定义 Stub/Shim 生成参数。有什么想法吗?
visual-studio-2012 - 在 VS2012 中使用假货时的 PostSharp 警告
我们最近更新到 VS2012 并且还将我们的 PostSharp 版本更改为 3.0.26。通常这种组合可以正常工作,但我收到单元测试项目的警告,例如
模块“ MyModule.Fakes.dll
”不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(又名常量)“SkipPostSharp”或设置 MSBuild 属性“SkipPostSharp=True”来禁用此模块的 PostSharp。
现在通常我可以通过相应地更改项目设置来禁用此警告(SkipPostSharp = True),但我已经为包含单元测试的 MyProjectTest 项目做到了这一点。
当我添加<SkipPostSharp>True</SkipPostSharp>
到MyModule.Fakes
文件Fakes
夹中的文件时,关于 PostSharp 的警告消失了,但是,我收到另一条错误消息:
命名空间“http://schemas.microsoft.com/fakes/2011/”中的元素“Fakes”在命名空间“ http://schemas.microsoft.com/fakes/2011/ ”中具有无效的子元素“SkipPostSharp” 。预期的可能元素列表:命名空间“ http://schemas.microsoft.com/fakes/2011 ”中的“StubGeneration、ShimGeneration、Compilation ”。
更新
我也尝试编辑fakes.xsd
文件并添加一个额外的SkipPostSharp
元素,但是 a) Visual Studio 仍然无法将其识别为有效元素,并且 b) 我不确定这是否是正确的方法。
任何想法如何摆脱这些警告?