问题标签 [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.
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 目录。
编码
params - Moles 有没有办法用 params 关键字来摩尔/模拟一个方法?
有没有办法用 params 关键字来摩尔/存根/模拟方法?
下面是我试图摩尔/存根的方法的一个例子:
我试图像这样摩尔它:
我收到以下编译错误:
'; 预期”和“预期类型”
突出显示 params 关键字。
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
谢谢!!!
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,以允许其他人改进此代码:
moles - 为什么 Moles 不断地被读入我的项目?
我在 VS2010 的项目中添加了 Moles,决定不想使用它,然后删除了 Moles 引用以及 .behaviours 和 .moles 程序集。问题是我反复发现 Moles 已被重新添加到项目中而没有我的干预。项目外部是否有某种设置会在安装后自动添加?
mocking - 模拟索引属性的摩尔
我正在寻找一种方法来使用 Moles 在配置文件中“绕道”单个项目。我可以做这个:
这很好用,但是我尝试测试的类使用了一些其他配置设置,包括 ConfigSections 和 Moles detour 似乎已经打破了这一点。我只想替换一个特定的值,而不是整个部分。在 TypeMock 中,我可以这样做:
Isolate.WhenCalled(() => ConfigurationManager.AppSettings["MyKey"]).WithExactArguments().WillReturn("MyValue");
当我使用 TypeMock 模拟 configurationManager 时,我的测试通过了,但是当我使用 Moles 版本(看起来它应该做同样的事情)时它失败了,这意味着 Moles 必须以 TypeMock 没有的方式影响 ConfigurationManager 类。
任何有关我如何使用痣以按照 TypeMock 的方式行事的帮助将不胜感激。
.net - 在 .NET 中模拟/存根非虚拟方法
有哪些 .NET 模拟或存根框架可以存根诸如 Microsoft Moles之类的非虚拟(甚至静态)方法?有像 RhinoMocks 这样的东西会很好AssertWasCalled
。
static - Moles 在静态构造函数中不起作用
我一直遇到 Mole 类型在静态构造函数中不起作用的问题。我创建了两个简单的例子来解释这个问题:
我有一个简单的实例类如下:
我对此进行了单元测试,如下所示:
这没有问题。
但是,如果我将调用类更改为静态(不是 Moled 类,而是调用类),则 Moles 不再起作用:
并相应地修改我的单元测试:
......现在鼹鼠不再起作用了。运行此测试时,我收到错误“找不到文件 'd:\blah\blah\test.txt'”。我得到这个是因为 Moles 不再负责我的 FileSystem 类,所以单元测试正在调用在文件系统上寻找文件的原始实现。
因此,唯一的变化是调用 Moled 方法的类现在是静态的。我没有更改 Moled 类或方法,它们仍然是实例类型,所以我不能使用 Implementation.Moles.SFileSystem 语法,因为这将用于模拟静态类。
请有人帮忙解释我如何让 Moles 在静态方法/构造函数中工作?
非常感谢!!!
visual-studio-2010 - 痣将程序集添加到错误的项目
我正在尝试开始使用Microsoft Moles,以便能够模拟我的扩展方法,但我做不到。
我已经在我的工作站上成功安装了 Moles,但是当我进入我的测试项目(一个引用 NUnit 的类库项目,而不是一个 MSTest 项目)时,通过 References 向下导航,右键单击我想要存根的程序集(NHibernate 在这个案例)并单击“添加痣程序集...”,NHibernate.moles 文件显示在我的解决方案中一个完全不同的项目中。它唯一的内容是
这似乎没有让我到任何地方。我希望能够按照Dime Casts 的这个截屏视频开始,但我没有截屏视频中显示的“用于测试的 Moles and Stubs”项目模板。
我似乎无法从这里到达任何地方。我需要做什么才能获得这些模板?为什么鼹鼠“组装”最终会出现在错误的项目中?我该如何从这里开始使用 Moles?