问题标签 [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.

0 投票
3 回答
808 浏览

unit-testing - 带有 MS 假货的 TDD

我将尝试 TDD,并且正在为此研究合适的工具。在工作中,我们使用的是 MS Fakes,因此最好不要更改它并使用带有 TDD 的 MS Fakes。但我有一个严重的问题。在我看来,MS Fakes 旨在用于场景:编写代码->为其编写单元测试。如何在 TDD 期间使用 MS Fakes 模拟某些界面?

例如,我在一个文件中有以下代码(稍后将进行重构)

在我的 TDD 过程中,我将所有内容都放在一个文件中,然后将对其进行重构并移至不同的程序集。但我需要在这个地方模拟内联ICustomerRepository customerRepository = null;。例如,我可以使用 NSubstitute 轻松完成。但是,如果我使用 MS Fakes,我首先需要将此界面移动到另一个项目,请从单元测试所在的项目中引用该项目,然后按“添加假程序集”。这似乎是非常复杂的工作流程,这使得 TDD 变得不那么快速和高效。我希望在没有所有这些奇怪操作的情况下就可以编写这样的代码:

而是StubBase<>抽象的。那么有没有办法用 MS Fakes 做这样的事情呢?

0 投票
1 回答
1674 浏览

unit-testing - 模拟 ASP.NET MVC 控制器属性

我有一个 MVC 控制器,它加载资源文件并用于Server.MapPath获取文件的路径。我想使用Microsoft Fakes框架模拟控制器对象中的Server属性(我知道如何使用其他框架来做到这一点)。

这是代码:

我试图模拟的部分是“Server.MapPath”方法。

0 投票
1 回答
6769 浏览

visual-studio-2012 - 如何使用 Fakes Framework 垫片模拟/隔离 VS 2012 中的内部类?

所以,问题是我的程序集中有一堆内部类,供我要测试的类使用。由于访问器已从 VS2012 中删除,我可以很好地使用[InternalsVisibleTo]并且效果很好......除非我尝试改变我的内部类,它们对 Fakes 框架不可见。我还应该注意,我正在处理的特定类是具有静态方法的静态类,并且我真的不想重构所有内容以使用接口(和使用存根),因为组织中对这种重构级别的抵制。

有没有办法让这些内部成员在 Visual Studio 2012 中的 shims 上下文中可用,而无需诉诸接口(字面意思)一切?

0 投票
1 回答
346 浏览

visual-studio-2012 - 构建机器单元测试

通过 TFS 运行自动化构建有什么要求,其中解决方案包含使用Microsoft Fakes 框架的单元测试?

我现在有一台使用 VS 2010 和 .NET 4.0 的构建机器。我知道可以安装 VS 2012 Ultimate。我将如何定位 VS 2012 而不是 2010?

0 投票
1 回答
1958 浏览

visual-studio-2012 - 无法在 VS2012 更新 1 上添加 Microsoft.Practices.EnterpriseLibrary.Logging 的 Fakes 程序集

安装 VS2012 Update 1 后,我无法创建假程序集以供Microsoft.Practices.EnterpriseLibrary.Logging.dll参考。但是伪造程序集Microsoft.Practices.EnterpriseLibrary.Commom.dllSystem.dll而其他人则正常创建。我发现这个问题的唯一解决方案是卸载 VS2012 的更新 1,然后一切恢复正常。该问题发生在本地计算机和 tfs 构建服务器上。

这是 VS2012 在其错误列表中显示的错误:

我想这是 VS2012 Update 1 的错误,但也许我缺少一些要检查的属性或什么?

0 投票
1 回答
205 浏览

visual-studio-2012 - Fake 框架中的行为模型

在 Visual Studio 2010 中,这是使用 Behaviors 测试 ASP.NET 应用程序的方法。现在,在 VS 2012 中,他们已经升级到 Fakes Framework。您如何使用 Fakes 达到同样的效果?

为“System.Web”创建 Fakes 程序集不会为“System.Web”创建行为模型。Bhttpcontext即,当您在“System.Web.Behaviors”命名空间中破坏“System.Web”程序集时,我找不到曾经存在的对象。

0 投票
1 回答
268 浏览

visual-studio-2012 - 我可以在 VS 2012 Professional 中使用 stubs/shims 命令执行我的单元测试方法吗?虽然是在 VS 2012 Ultimate 中创建的

我在 VS 2012 终极版中使用存根/垫片创建了我的单元测试方法。

我可以在 VS 2012 Professional 中使用 stubs/shims 命令执行我的测试方法吗?

0 投票
1 回答
778 浏览

visual-studio-2012 - StubObserver:如何验证是否使用正确的参数调用了存根方法?

我参考了 Peter Provost 的这篇文章:

Visual Studio 2012 Fakes - 第 3 部分 - 观察存根行为

问题是我是否以及如何验证该方法是否使用定义的参数调用?例如像这样的东西:

0 投票
3 回答
10846 浏览

visual-studio-2012 - vs 2012:Shims 编译

我正在尝试在 VS 2012 Ultimate 中制作一个 shim,如 MSDN 站点中所述:

请参阅http://msdn.microsoft.com/en-us/library/hh549176.aspx

但是当我编译我的测试项目时,我在输出中得到了一个概念:

警告:无法生成某些假货。有关完整的详细信息,请将此文件中的 Fakes 元素的诊断属性设置为“true”并重新构建项目。

如何解决此警告?

0 投票
1 回答
4169 浏览

c# - 如何轻松更换 Microsoft Fakes 程序集?

将 Microsoft Fakes 程序集添加到测试项目很容易:只需右键单击引用部分中的父程序集并选择“添加 Fakes 程序集”。但是,当父程序集公共接口发生变化(新接口、新方法)时,Fakes 程序集就会过时。

当我再次右键单击父程序集时,我很想看到“替换假货程序集”或“更新假货程序集”,但我看到的只是“添加假货程序集”。

在已添加 Fakes 程序集时选择“Add Fakes Assembly”会导致错误:

已经引用了假程序集。一个 Fakes 程序集已经在参考列表中。删除 .Fakes 引用并重试。

按照说明操作,然后选择“添加假货程序集”后,会出现同样的错误。

我可以通过删除 Fakes 目录 (.fakes) 中的相应 xml 文件来解决此问题。

因此,我必须手动删除两项(假货程序集和假货 xml 文件),然后才能成功更新假货程序集。

有没有更简单或更直接的方法来做到这一点?