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

visual-studio-2010 - 类更改后 Moles 不显示新的方法签名

我有

并将此私人与痣一起使用

现在我将方法更改为:

但是痣并没有给我新的签名。门槛MVoo.DooInt32 但我期待MVoo.DooStringObject

我删除了痣参考,清洁,重建。目前还没有阳性结果。

有任何想法吗?

0 投票
1 回答
780 浏览

c# - 没有使用 Moles 的测试的代码覆盖率信息

在过去的几天里,我已经习惯了 OpenCover,并且我注意到使用 Moles 进行的测试不会生成任何 Coverage 信息。

我创建了一个小解决方案来隔离问题,并发现代码覆盖率仅针对没有该[HostType("Moles")]属性的测试生成。

阅读周围我发现这个似乎是我的问题的 NCover 等价物。他们说这与 Moles 运行分析器以及覆盖工具有关,并且CLRMONITOR_EXTERNAL_PROFILERS可以设置一个环境变量以允许多个分析器与 Moles 同时运行 - 我认为这就是解决方案在于,但我不是 100% 确定。我猜该变量的值将是 OpenCover 分析器的名称 - 有人知道这个名称吗?

有没有人设法让 OpenCover 与 Moles 一起运行?可以做到吗?

0 投票
1 回答
310 浏览

c# - 无法为 System.Diagnostics.EventLog 创建 Mole 类型

我正在使用 TDD 和 Moles 构建(又一个)Windows 服务。该项目包括对System.Dagnostics.EventLog的扩展,包括日志消息中输入参数 Exception 对象的详细信息。我必须验证异常详细信息以及内部异常的详细信息是否正确写入事件日志。扩展最终调用 System.Dagnostics.EventLog.WriteEntry。

我想绕道 System.Diagnostics.Moles.MEventLog.WriteEntry。但是,MEventLog 不存在(没有 SEventLog)。关于如何隔离事件日志交互的任何想法?

0 投票
0 回答
149 浏览

moles - Moles 0.94安装找不到pex.powertool.x64.msi

我正在尝试安装最新的 Moles/Pex 0.94,但安装无法卸载以前的版本,因为它找不到 pex.powertool.x64.msi。我在这里的多台计算机上搜索了此文件,但似乎无法在任何地方找到它。这个文件在某处可用,还是有办法手动删除 pex/moles?

0 投票
1 回答
679 浏览

c# - 没有覆盖 x64 Windows Server 2003 上的 Moles 测试

出于某种原因,OpenCover 没有涵盖在 Windows Server 2003(64 位)上使用 moles 的测试。我提出了一个类似的问题,在我的 32 位 Windows 7 机器上解决了这个问题,但由于某种原因,在 Windows Server 机器上设置环境变量并没有什么不同。

x64 探查器是否有不同的 CLSID?或者这可能是另一个问题?

重现步骤

使用三种方法在 Visual Studio 中创建一个新项目:

接下来创建一个测试项目,如下所示:

为了编译以上代码,您需要通过右键单击 ConsoleApplication2 引用并选择“添加 Moles 程序集”来“添加 Moles 程序集”。

使用以下命令运行 OpenCover:

64位机器等效:

在 results.xml 文件上运行 ReportGenerator。

预期成绩

如果成功(如在我的 32 位 Windows 7 机器上),报告应显示 method3 已覆盖(在 method2Test 中调用),如下所示:

Windows 7 32 位报告

但是,在 64 位 Windows Server 上运行时,结果如下所示:

Windows Server 64 位报告

在这两种情况下,所有测试都通过了,但是在 64 位 Windows Server 上使用 Moles 的测试没有获取覆盖信息。

我希望这可以更清楚地解释问题 - 如果您需要更多信息,请告诉我。

谢谢,杰克

0 投票
1 回答
426 浏览

sharepoint - SharePoint 行为类型 - 运行 Pex 探索错误 (System.Moles 4.0.0.0)

我正在关注关于 pex 和痣的教程(http://research.microsoft.com/en-us/projects/pex/pexsharepoint.pdf)。它一岁了,但一切都很好,直到我将 Mole 类型更改为 Behaved 类型。一旦我这样做了,'Run Pex Explorations' 命令开始抛出这个异常:

无法加载文件或程序集“System.Moles,Version=4.0.0.0,Culture=neutral,PublicKeyToken=0ae41878053f6703”或其依赖项之一。该系统找不到指定的文件。

我尝试了多种解决方案(包括Moles 和 SharePoint 行为类型)。我还尝试为 System 4.0.0.0 程序集生成 Moles,但由于多个“找不到合适的方法来覆盖”错误而失败。

我在 pex (0.94) 和 moles (1.0.0.0) 上使用最新版本。有什么解决办法吗?

0 投票
1 回答
164 浏览

linq-to-sql - 如何 MOLE 数据上下文

我试图弄清楚如何破坏数据上下文,以便我的单元测试永远不会命中数据库。

我想要实现的是创建了一个数据上下文但不连接到数据库,然后当我调用 GetTable (通过我的存储库)时,我返回一个 List.AsQueryable() (我在单元测试中创建自己)。

0 投票
0 回答
284 浏览

.net - 构建 .NET 4.0 系统程序集时 Moles 失败

运行命令为 moles 构建 .net 4.0 系统程序集时遇到错误:为系统程序集生成时编译生成的代码 (-1007 - 0 xfffffc11) 时出现 MSIL 错误。我已经尝试修复以使用带有 /uninstall 开关的先前版本,但认为它不再有效。有谁知道如何解决痣的这个问题?

0 投票
1 回答
223 浏览

moles - 无法为 System.Environment 类创建 Mole

我想替换我的单元测试中的行为,但是在为程序集Environment.GetFolderPath生成痣之后,程序集不包含 type 的定义。SystemSystem.MolesMEnvironment

0 投票
1 回答
1130 浏览

c# - 单元测试遗留代码:“提取和覆盖”与 JustMock/TypeMock/moles 的限制?

鉴于以下条件:

  • 一个非常古老的大型 C# 遗留代码库,没有任何测试覆盖
  • (几乎)每个类都派生自某个接口
  • 没有什么是密封的

与使用 extract&override + 例如 RhinoMocks 相比,使用 Profiler-API 驱动的解决方案(如 JustMock 和 TypeMock)有哪些实际好处?有没有我不知道的情况,除了规避私有/受保护之外,真的需要使用 TypeMock/JustMock 等吗?我特别欢迎人们从已经改用其中一种产品的人那里获得一些经验。

使用 extract&override 似乎可以解决处理旧代码时的所有问题,重构似乎非常简单,并且引入错误的可能性似乎很小。减少测试代码的好处是什么?更漂亮的课程,更少的虚拟保护内容?现在,我不“明白”,尽管我知道首先单独测试私有方法非常有帮助,因为在这些旧的遗留代码库中,公共方法可能太大了。

如果您不知道什么是 extract&override:请参见此处