问题标签 [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 投票
1 回答
331 浏览

c# - 垫片自定义词典

我创建了一个类,它是字典类的扩展,如下所示:

我现在想填充 PKMRelations 的 Count 方法,以便它返回我想要的值。通常我只会添加一些元素,但由于当前配置,这是不可能的。

目前我无法弄清楚如何填充字典的 Count 方法。为了能够做到这一点,我必须为这个特定的通用字典类创建一个 Shim。

这完全有可能吗,如果可以,我该怎么做?

0 投票
1 回答
148 浏览

.net - 我可以使用 Microsoft Fakes 在第 3 方可执行文件中“填充”.net 函数调用吗?

MS Fakes 可用于将函数调用重定向到您的 vs 项目中的存根或填充函数,您有 src 代码,但我想知道它是否可用于调试目的以填充第 3 方 exe 中的函数?在描述页面上,它说 shim 在运行时工作,所以不应该有任何理由我不能在 3rd 方可执行文件上使用它,对吗?

0 投票
1 回答
650 浏览

c# - 如何使用带有 Web 服务代理的 Microsoft fakes?

我正在尝试为现有的订单发送例程编写一些单元测试:该例程使用实体框架提取订单,将 ef 类中的数据映射到 web 服务公开的例程,然后发送到 web 服务。

我想创建一个 Web 服务的 shim,这样我就可以捕获发送订单的例程,恢复发送的对象并对其进行测试。

如何创建代理类的垫片?

谢谢卢卡

0 投票
2 回答
7106 浏览

c# - 不会为 .NET 方法生成垫片

当我开始使用 Microsoft Fakes 时,我很高兴开始填充一些 .NET 方法。我被引导相信我将能够填充任何 .NET 方法,无论是否静态:http: //msdn.microsoft.com/en-us/library/hh549176.aspx

但是,我一直在尝试填充 TcpClient 中的一些方法并且只创建存根,这对我没有好处,因为我希望能够更改一些方法以返回我自己的数据,而不是依赖于实时TcpClient 给我数据。

如果除了 Microsoft Fakes 之外还有其他方法,我愿意接受有关如何执行此操作的任何建议。

编辑:添加代码来演示问题

0 投票
2 回答
1214 浏览

unit-testing - 如何填充 HttpWebRequest

我在尝试填充 HttpWebRequest 时遇到问题。如果您只是添加系统程序集的伪造程序集,它不会立即工作。但是,如果您更改 fakes 文件并添加它可以工作的特定命名空间。

问题是这只适用于本地。尝试解析 ShimHttpWebRequest 时,Team Foundation Server 上的自动构建会引发错误。看起来自动构建忽略了假文件,因为当我在构建服务器上使用 VS 手动构建它时,它可以工作。

0 投票
0 回答
492 浏览

c# - 创建假对象来模拟 GetHashCode

我有以下课程(删除了不相关的部分)...

我想编写一个单元测试来测试这个方法,但GetHashCode每次调用都会返回一个不同的值,所以我试图GetHashCode使用 Microsoft Fakes 进行模拟(我在 VS 2012 中)。

我不知道该怎么做。我尝试为 XElement 创建一个 Shim,为对象类创建一个 Stub,但不知道如何将两者绑定在一起。我是在尝试做一些不可能的事情,还是我只是错过了什么?

这是我的单元测试代码...


更新

我解决了我的问题,但没有回答我原来的问题,所以我只是将我的解决方案添加到原来的问题中,以防其他人有解决方案。我最终在没有模拟任何对象的情况下解决了这个问题。这是那些“duh”时刻之一,而不是将期望值设置为硬编码值,而是将其设置为GetHashCode.

然后测试其他条件...

这并不理想,因为它没有模拟 GetNullableAttrText 扩展方法,但是恕我直言,它比使用 Fakes 更干净。

0 投票
0 回答
495 浏览

visual-studio-2012 - Fakes 项目中的警告 MSB3270

迁移到 VS2012 (Update 2) 并使用 Fakes 后,MSBuild 开始显示新警告:

正在构建的项目“MSIL”的处理器架构与参考“System.Data”、“x86”的处理器架构不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。

我们解决方案中的所有项目都配置为“AnyCPU”平台目标。但是动态生成的 Fakes 项目包含对 System.Data 的引用,下一个路径是:C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll 那么,如何将 Fakes 配置为使用 GAC_64 中的 System.Data.dll 而不是 GAC_32?

以前我在 MS 论坛上问过这个问题,但没有任何合适的结果http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/185e8de7-e43f-4034-bfdc-01762b2bd0ba/#7d61159f-217a -4b4b-8aa1-bacae64e473f

0 投票
6 回答
7805 浏览

c# - UnitTestIsolationException:在发布/调试模式下运行 Shims 测试时引发异常

我正在尝试使用 Microsoft Shims 运行此单元测试,但它在Shims.Context.Create();方法中引发了异常。

环境: VS 2012,Win2K8 R2

详细例外:

0 投票
1 回答
2193 浏览

visual-studio-2012 - TFS Fails to build a project containing Microsoft Fakes

After adding Fakes framework to the test project after each check in I get the following error:

Also after I check in VS marks both of the files mentioned above as read-only. After this happens, building the project on the local machine fails with exactly the same errors.

0 投票
1 回答
848 浏览

c# - 假垫片通用存储库 not working
    List<Customer> customerList= new List<Customer>();
    List<Employee> employeeList= new List<Employee>();

Fakes.ShimDataServiceRepository<object>.AllInstances.GetEnt

When my test method call a business layer method and business layer method call unitofwork.CustomerRespository.GetEntities(filter condition) the call goes to

and it inturn calls the actual database call and error.

The call is not hitting the point in the fake

When i use the specific class 'Customer' instead of object like

it is working fine. But i need a general fake method.
Please help


Mobile accelerometers and gyroscopes check feature

I'm looking for a proper way to check if accelerometers and gyroscopes is available on mobile device ( mostly android & iphone ) in javascript.

Maybe by trying to figure out if the function called return something ?