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

visual-studio-2010 - Moles/VS2010 SP1 问题 - 错误 32,退出代码 -1002 使用 Moles 0.94.51023.0 构建 mstest

更新 6/20/2011 在收到此错误之前,我只能构建一次或两次测试项目。在解决此问题之前,痣对我来说是无法使用的。删除 obj/bin 和关闭/重新打开 Visual Studio 是不切实际的。

错误

错误 32 命令 ""C:\Program Files\Microsoft Moles\bin\moles.exe" @C:\src\qp\mvc3\Solution\QP.Tests.Moles\obj\Debug\Moles\moles.args" 退出代码-1002。QP.Tests.Moles

说明

试图将痣与 nunit 一起使用,但遇到了麻烦......所以我创建了一个新的 mstest 项目,只进行了一次测试。测试已构建,我能够调试到 SUT 并验证 HttpContext 包含预期的值。后续构建测试项目的尝试因上述原因而失败。

注意:我正在运行 resharper 6 EAP(我知道,我知道),但我已禁用它的 mstest runner。此外,这是一个构建错误。

我试过的

已尝试在测试项目中重建、清理和删除 obj/bin 目录。

编码

0 投票
2 回答
317 浏览

params - Moles 有没有办法用 params 关键字来摩尔/模拟一个方法?

有没有办法用 params 关键字来摩尔/存根/模拟方法?

下面是我试图摩尔/存根的方法的一个例子:

我试图像这样摩尔它:

我收到以下编译错误:

'; 预期”和“预期类型”

突出显示 params 关键字。

0 投票
1 回答
213 浏览

visual-studio-2008 - 从 App.Config 获取数据在 VS 2008 Framework 3.5 中不起作用

当我在我的 Unittest 中使用 Moles 时,无法使用 configurationManager 从 appconfig 中获取值。

我知道这是一个已知问题,但我想知道除了使用以下解决方案 http://social.msdn.microsoft.com/Forums/en/pex/thread伪造之外,是否可以找到好的解决方法(一些技巧)来解决这个问题/9b4b9ec5-582c-41e8-8b9c-1bb9457ba3f6

谢谢!!!

0 投票
0 回答
330 浏览

moles - 痣和绑定重定向

我的场景很常见,一个 nuget 包使用 V1.0,另一个使用 V1.1,所以我必须添加一个绑定重定向。但是,moles runner 似乎忽略了 App.config 和程序集配置文件中的绑定重定向。

要加载 App.config,我正在使用以下代码:How To Read UnitTest Project's App.Config From Test With HostType("Moles")

有任何想法吗?

好的,我花了一些时间,但我已经弄清楚如何模仿绑定重定向的行为。这是我为此做的代码。将此保留为 Wiki,以允许其他人改进此代码:

0 投票
1 回答
407 浏览

moles - 为什么 Moles 不断地被读入我的项目?

我在 VS2010 的项目中添加了 Moles,决定不想使用它,然后删除了 Moles 引用以及 .behaviours 和 .moles 程序集。问题是我反复发现 Moles 已被重新添加到项目中而没有我的干预。项目外部是否有某种设置会在安装后自动添加?

0 投票
1 回答
538 浏览

mocking - 模拟索引属性的摩尔

我正在寻找一种方法来使用 Moles 在配置文件中“绕道”单个项目。我可以做这个:

这很好用,但是我尝试测试的类使用了一些其他配置设置,包括 ConfigSections 和 Moles detour 似乎已经打破了这一点。我只想替换一个特定的值,而不是整个部分。在 TypeMock 中,我可以这样做:

Isolate.WhenCalled(() => ConfigurationManager.AppSettings["MyKey"]).WithExactArguments().WillReturn("MyValue");

当我使用 TypeMock 模拟 configurationManager 时,我的测试通过了,但是当我使用 Moles 版本(看起来它应该做同样的事情)时它失败了,这意味着 Moles 必须以 TypeMock 没有的方式影响 ConfigurationManager 类。

任何有关我如何使用痣以按照 TypeMock 的方式行事的帮助将不胜感激。

0 投票
2 回答
689 浏览

.net - 在 .NET 中模拟/存根非虚拟方法

有哪些 .NET 模拟或存根框架可以存根诸如 Microsoft Moles之类的非虚拟(甚至静态)方法?有像 RhinoMocks 这样的东西会很好AssertWasCalled

0 投票
2 回答
803 浏览

static - Moles 在静态构造函数中不起作用

我一直遇到 Mole 类型在静态构造函数中不起作用的问题。我创建了两个简单的例子来解释这个问题:

我有一个简单的实例类如下:

我对此进行了单元测试,如下所示:

这没有问题。

但是,如果我将调用类更改为静态(不是 Moled 类,而是调用类),则 Moles 不再起作用:

并相应地修改我的单元测试:

......现在鼹鼠不再起作用了。运行此测试时,我收到错误“找不到文件 'd:\blah\blah\test.txt'”。我得到这个是因为 Moles 不再负责我的 FileSystem 类,所以单元测试正在调用在文件系统上寻找文件的原始实现。

因此,唯一的变化是调用 Moled 方法的类现在是静态的。我没有更改 Moled 类或方法,它们仍然是实例类型,所以我不能使用 Implementation.Moles.SFileSystem 语法,因为这将用于模拟静态类。

请有人帮忙解释我如何让 Moles 在静态方法/构造函数中工作?

非常感谢!!!

0 投票
1 回答
969 浏览

visual-studio-2010 - 无法在 Visual Studio 2010 SP1 中安装 Moles

我正在尝试使用此处找到的下载(这是 x86 版本,我也尝试过 x64 版本)安装Moles(没有 Pex,因为 Pex 仅可免费用于非商业目的)。

安装程序运行没有错误,并通知我 Moles 已正确安装。但是当我启动 Visual Studio 时,我看不到应该安装此加载项的任何痕迹。它没有显示在扩展管理器中已安装的扩展中,我无法将任何 Moles 项目添加到我的项目中。

我在这里缺少一些安装步骤吗?

0 投票
1 回答
428 浏览

visual-studio-2010 - 痣将程序集添加到错误的项目

我正在尝试开始使用Microsoft Moles,以便能够模拟我的扩展方法,但我做不到。

我已经在我的工作站上成功安装了 Moles,但是当我进入我的测试项目(一个引用 NUnit 的类库项目,而不是一个 MSTest 项目)时,通过 References 向下导航,右键单击我想要存根的程序集(NHibernate 在这个案例)并单击“添加痣程序集...”,NHibernate.moles 文件显示在我的解决方案中一个完全不同的项目中。它唯一的内容是

这似乎没有让我到任何地方。我希望能够按照Dime Casts 的这个截屏视频开始,但我没有截屏视频中显示的“用于测试的 Moles and Stubs”项目模板。

我似乎无法从这里到达任何地方。我需要做什么才能获得这些模板?为什么鼹鼠“组装”最终会出现在错误的项目中?我该如何从这里开始使用 Moles?