问题标签 [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.
unit-testing - 从 Moles 切换到 Fakes 后,VS2012 中的任意单元测试失败
我对一个程序集进行了大约 300 个单元测试,这是我最初在 VS2010 下启动的解决方案的一部分。许多测试使用了 Micrsoft 提供的 Moles 框架,但是在升级到 VS2012(更新 2)后,我想更改测试以使用官方提供的 Fakes 框架。
我相应地更新了相应的测试,这通常只涉及ShimsContext
对代码创建一个和一些小的更改:
前
后
我的测试项目中有不同的测试类,当我运行测试时,我得到了我无法解释的任意错误,例如:
- 在发布模式下运行一个类的测试 => 21 个测试失败 / 15 个通过
- 在调试模式下对同一类运行测试 => 2 次测试失败 / 34 次通过
- 在发布模式下再次对同一类运行测试 => 2 次测试失败 / 34 次通过
- 运行项目中的所有测试 => 21 次测试失败 / 15 次通过(对于上面提到的类)
同事在他的系统上的行为相同。错误消息总是TypeLoadException
s 例如
测试方法...抛出异常:System.TypeLoadException:无法在程序集“System.DirectoryServices.4.0.0.0.Fakes,Version=4.0.0.0, Culture=neutral, PublicKeyToken”中加载类型“System.DirectoryServices.Fakes.ShimDirectorySearcher” =……”
在 VS2012 本身中,源代码编辑器没有显示任何错误,Intellisense 按预期工作,鼠标工具提示例如 ShimDirectorySearcher 显示它的位置等。此外,当我打开正在生成的 Fakes 程序集时(例如 System.DirectoryServices.4.0. 0.0.Fakes.dll) 与 .NET Reflector,错误消息中显示的类型存在。
在我们从 VS2010 切换到 VS2012 之前,所有测试都运行良好(在调试和发布模式下),但现在我们不知道这里出了什么问题。为什么结果会以上述方式发生变化?为什么即使类型确实存在,我们也会得到 TypeLoadExceptions?
不幸的是,Micrsoft 或互联网上几乎没有任何帮助。
c# - 为装配添加假货失败,没有任何错误消息
我正在尝试为与 Web 服务通信的连接器组件设置一些单元测试。我正在关注提供的示例:
但是,当我为我的连接器组件添加假货时,项目无法构建并且没有报告错误。因此,我修改了 fakes 文件以打开诊断并使用嘈杂的详细信息……但仍然没有收到任何错误消息。然后我在 fakes 文件中禁用了 stub 和 shim 生成,它仍然无法构建。
如果我删除连接器组件的假货,它就会建立。我为它添加了假货,该项目没有建立。没有收到任何错误消息,我不知道如何使这项工作。
任何帮助,将不胜感激。
c# - 使用 Microsoft Fakes 来模拟
我使用需要模拟的 async(.net 4.5) 方法密封了类。我正在使用 Microsoft Fakes,因此它们将是“垫片”。下面的代码是我需要做的一个例子。它会构建,但是当运行并调用“Login”控制器方法中的“LoginAsync”方法时,测试会挂起。
c# - System.ServiceModel.Channels.Message?
我是 Visual Studio 中 MS Fakes 的新手。
任何人都可以帮我举一个关于如何伪造 a 的例子System.ServiceModel.Channels.Message
吗?
我想控制的返回值
和
MS Fakes 是否有可能做到这一点?我实现了最小起订量,但MessageProperties
课程是密封的,所以这不起作用。
c# - 带有 WCF 服务的 Microsoft Shis
我正在尝试遵循这个示例并利用 shim 删除对 WCF 服务调用的外部依赖,该调用是从我正在执行单元测试的方法中调用的。与示例不同,我使用类似于以下的代码即时生成我的 WCF 客户端:
如何调整该示例以填充 CreateChannel 方法返回的代理?我假设在 ShimWCFService 类中,我需要添加类似......
但是,我不确定如何将模拟对象<TService>
与该 shim 关联作为返回值。
web-services - 如何使用 Microsoft Fakes 对 Web 服务进行单元测试?
我正在开发一个具有 3 层架构的项目:- 1. 业务层 2. 数据层 3. 服务层
我想对我的服务层进行单元测试。
目前,我通过伪造数据层成功地将单元测试添加到我的业务层。
现在的问题是,我有一个服务层,它调用我的业务层,然后调用我的数据层。
通过的初始测试用例是通过在我的单元测试项目中添加业务层项目的引用,然后创建数据层的假货来编写的。
现在我想做的是,我想通过在单元测试项目中添加服务引用并同时使用 Microsoft Fakes 来实现这一点。
有人可以帮助我理解这一点吗?我是这个 Fakes 框架的新手。
visual-studio - 如何伪造对 MSMQ.Send 的调用
我有以下测试代码:
SUT 具有以下方法(用于 MethodCall):
但我收到以下错误:
显然队列将不存在,如果我没有在假消息队列上创建队列,我将没有足够的权限。有没有人有任何使用 MSMQ 和 Fakes 的经验,以便对 MSMQ 发送的调用基本上是我可以验证的无操作?
visual-studio-2012 - Microsoft Fakes & TFS 2012 Visual Studio Test Runner - 单元测试偶尔失败
环境
- Visual Studio 2012 高级更新 3
- 团队基础服务器 2012 更新 3
- 编辑:.NET 框架 4
- 默认模板 (DefaultTemplate.11.1.xaml)
- Visual Studio 测试运行器
- 目标平台:X86
- Visual Studio 测试运行器
问题
我有 2 个单元测试程序集:
- 扩展测试
- 用户测试
两者都使用Microsoft Fakes Framework(使用 Stubs和Shims)。
在本地运行单元测试可以正常工作(在 4 台不同的机器上测试,甚至在构建服务器上安装的 Visual Studio 上测试),但是如果我们使用构建代理构建,一些单元测试会失败并出现异常,例如:
或相同的垫片:
有趣的是,它们偶尔会失败,我试图编造一些统计数据:
请注意,除了提到的更改之外,没有人更改源代码。
所有构建都是使用详细的日志级别进行的;垫片诊断=“真”;
只有明确需要的垫片/存根包含在 .fakes 文件中(否则 MSBUILD 使用退出代码 1 失败)。
这对我来说似乎很神奇,可能有人已经遇到过同样的问题,或者有人有提示。
提前致谢
unit-testing - 使用 Microsoft Fakes 和静态通用方法填充
我需要为单元测试填充一个静态通用方法。但是,我似乎无法让 Fakes 创建 shim 对象。有谁知道如何做到这一点?
特别是,我想填充 Newtonsoft 的 JsonConvert.DeserializeObject<>()
c# - 填空方法
我有以下(遗留的,继承自前辈)VB.Net(框架2.0)类和方法,它们在异常上创建系统事件日志:
我正在尝试在 C#(框架 4.5)单元测试项目中对此进行测试,并且部分逻辑要求是aValue
用逗号分隔的两个数字 - 如果不是,则抛出异常和事件日志。
我设置了以下单元测试以确保正确抛出异常:
这一切都很好,测试通过了,因为逻辑MyMethod
导致了预期的异常。但是,我不希望写入事件日志。那么,我如何 ShimMyUtitlityClass
来拦截呼叫LogError
而不做任何事情呢?
我见过的所有 Fakes 示例都是针对返回假值的方法(并且都是用C# 编写的!)当我尝试实现这样的模式时,它会给出一个错误,即 LogError 没有 getter。