问题标签 [moles]

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 投票
0 回答
209 浏览

visual-studio-2010 - 在 Moles 代表中使用“@this”

当我设置一个摩尔类型的属性时,看起来他们总是需要一个原始摩尔类型的对象作为第一个参数。我还注意到 Moles 参考指南中的一些示例将此参数分配为@this,我试图找出原因。

例如,原始类看起来像这样:

当我去摩尔这个方法时,该属性需要一个委托,其第一个参数始终是被摩尔对象的类型,在这种情况下,是一个ProductDAO对象。所以在这种情况下,该属性需要一个代表:

那么我是否总是必须提供那个摩尔对象作为我的 lambda 表达式的第一个参数?如果是这样,使用常规变量名与使用常规变量名有什么区别@this?是什么@this意思/做什么?

相对

0 投票
1 回答
264 浏览

.net - 是否有支持 .net framework 4.0 的 Moles 版本

我注意到 Moles 声明支持 VS2010,但公司政策强制我们的项目使用 .net 4.0,安装的 Moles 的目标框架是 2.0。

据我所知,2.0 和 4.0 是不兼容的版本更改。

那么是否有支持 .NET 4.0 的可下载 moles 版本?

0 投票
0 回答
154 浏览

unit-testing - pex 参数化单元测试中的值生成

我正在使用 Pex 构建单元测试。我的问题不是所有代码分支都在测试,Pex 不断生成参数值,这些参数值在相同的条件下失败,这使得该条件之后的所有代码都无法运行。

我的方法是这样的:

我想知道是否可以告诉 Pex 通过该测试,以便可以访问所有代码。如果这是不可能的,是否可以让 Pex 为其中一项测试采用函数参数的默认值(我认为如果它不存在,这将是一个很好的功能)。

谢谢

0 投票
0 回答
394 浏览

c# - 带有输出参数的 Microsoft Moles 通用方法

嗨,我正在尝试从公共 SettingsManager 类中删除此功能

我已经走到了这一步

但是为此的参数要求 a OutFunc mole:void,我不知道该放什么。任何帮助将不胜感激

0 投票
2 回答
642 浏览

unit-testing - 如何在公共类痣中转移“非公共”方法

我有一个使用本地私有方法从数据库获取数据的公共方法。

private string SomeMethod(string) { ... Doing some operations ... string data = GetDBData(string); Doing some operations ... }

我想使用 moles 转移/隔离私有方法 GetDBData(string),这样我的测试就不需要数据库。

显然,我的问题是:怎么做?谢谢乌利亚

编辑
附加信息:

我尝试将方法访问器更改为公共和内部受保护的,在这两种情况下我现在都可以将方法视为痣。但是在运行测试时,仍在使用原始方法,而不是我在 PexMethod 中实现的弯路。

0 投票
1 回答
594 浏览

moles - 为 x86 生成 dll 时,moles.exe 以错误代码 -1004 退出

我在尝试为 x86 生成 moles 程序集时收到错误代码 -1004。

我的痣档案:

如果我删除 x86="true" 一切正常

这是我构建中 Moles 的输出:

有谁知道如何解决我的问题?

0 投票
2 回答
770 浏览

c# - 在另一个过程中使用 Moles 的挂钩方法

我有一个用 Visual Studio 编译的 C# 应用程序。我想拦截并记录对该应用程序中某些特定方法的调用和序列化方法参数。是否可以拦截另一个进程中的方法调用(也许通过使用 App 域?)。有没有关于的文章/教程?

换句话说,我想在 .NET 中实现与 madCodeHook 和 Detours 对 win32 类似的目标。

谢谢

0 投票
2 回答
412 浏览

visual-studio-2010 - 如何用痣只调用一次代表/一次?

怎么可能只调用一次委托方法/一次用痣?

我只想调用一次“ResultateGet”方法,因为第一次没有委托的情况下,init 非常复杂。

我通常对如何在调用原始函数而不是委托之前调用一次或特定次数的痣代表感兴趣。

更新: 我找到了一种方法,这似乎有点麻烦。有更好的解决方案吗?

0 投票
1 回答
623 浏览

moles - 如何从多个代表中分配/选择“moled”方法?

在等待我的 VS 2010 许可证时,我目前正在从外部检查 Moles,我想知道 Moles 是否允许我:

  1. 提供为一个被mole的方法分配多个mole代表的能力,也许是在测试夹具设置级别?
  2. 在我的测试用例中在运行时切换,对于即将被隔离的 moled 方法的调用,必须调用我的哪些 moole 代表?

有什么提示吗?

0 投票
1 回答
482 浏览

visual-studio-2010 - Visual Studio 2010 Ultimate 中的 Pex 和 F#

我一直在尝试在 F# 项目中使用 Pex,但我遇到了几个问题,希望能得到一些帮助:

  1. Visual Studio Pex 插件工作了半个小时,而不是用于复杂的项目探索。

  2. 之后,每次我从 Visual Studio 2010 中运行 Pex 探索时,都会收到一条!warning! [metadata] no explorations found after applying all filters; did you forget a [PexClass] or [PexMethod] attribute?错误消息。如果我在进行探索时复制并粘贴 Visual Studio 运行的命令并删除一些属性(如 sourceFilter ...)并从命令控制台运行它,那么我会得到一些生成的测试。知道为什么 Visual Studio 会生成无效命令吗?

  3. 一段时间后,Microsoft.Pex.Framework.dll 要么从 .Net 引用列表中消失,我必须使用其文件路径手动引用它,或者我什至无法再引用它,我必须卸载/重新安装 Pex。( A reference to C:\Program Files (x86)\Microsoft Moles\PublicAssemblie\Microsoft.Pex.Framework.dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.)

当我处理 C# 项目时,不会发生所有这些问题。

学术版出现问题 1 2 3。

使用可用于 MSDN 订阅者的版本,我从来没有在 Visual Studio (Visual Studio 2010 Ultimate NO SP1) 中使用它。但是它可以在命令提示符下工作。这个版本我没有遇到问题3。

有没有人设法让 Pex 在 Visual Studio 中与 F# 一起工作?如果是,你能告诉我你是怎么做到的吗?您使用哪些版本(VS 和 Pex)?