问题标签 [pex-and-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 回答
679 浏览

unit-testing - 无法读取 HostType(“Moles”)上的 ConfigurationManager.AppSettings

如果 HostType 为 Moles,那么我无法通过 ConfigurationManager.AppSettings 获取数据

它在 2-3 个月前对我来说工作正常。但它不起作用,我所有的测试用例都失败了(引发了空引用异常)。

请帮我修复。谢谢。

MSDN 中也提出了相关线程

0 投票
1 回答
465 浏览

moles - 找不到关键的“痣”

我为我的解决方案创建了一个单元测试项目,并使用 Moles 来绕过所有数据读取。今天我启动所有测试时,最终结果是这样的错误“无法加载主机类型“Moles”:找不到密钥“Moles”。对于包含属性 HostType("Moles") 的每个测试。

我不明白问题的原因,因为我在三个月前使用 Moles,我从来没有遇到过这种问题。

谢谢!!!

0 投票
1 回答
907 浏览

c# - 痣和内部类

我们目前正在使用 Moles 来测试一些与第三方库交互的代码。该库没有很好地进行测试(因此需要痣),我遇到的问题是它们只公开公开一个抽象类。具体实现在 3rd 方库内部。

我面临的问题是,当尝试创建公共类型的实例时,它会从 moles 请求具体类型,但 moles 不会为这些类型生成 moles 对象,因为它们是内部的。

在 moles 文档下,公开内部结构的方法是在 AssemblyInfo.cs 文件中添加 InternalsVisibleTo 属性。然而,这是为了让鼹鼠使用我的程序集内部,因为这些是已经创建程序集的 3rd 方库,我不知道如何使这些内部可见,以便鼹鼠可以使用它们。

无论如何,这方面的任何帮助都会很棒。我会接受集成测试,这是唯一的解决方案,但希望不必走到那一步。

0 投票
2 回答
1516 浏览

tdd - 鼹鼠系统.dll

我需要对System.Net.WebClientSystem.dll. 我尝试了 Mole System.dll,但是当我尝试编译项目以添加对System.dllmole 的引用时,我得到了一堆错误,如下所示:

错误 2

'System.Net.Moles.SFileWebResponse.Dispose(bool)':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 251374 33 DGALib.IO.Tests

错误 3

'System.Net.Moles.SFileWebResponse.SupportsHeaders':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 251575 30 DGALib.IO.Tests

错误 4

'System.Net.Moles.SHttpWebResponse.Dispose(bool)':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 255264 33 DGALib.IO.Tests

错误 5

'System.Net.Moles.SHttpWebResponse.SupportsHeaders':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 255465 30 DGALib.IO.Tests

错误 6

'System.Net.Moles.SWebResponse.Dispose(bool)':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 303123 33 DGALib.IO.Tests

错误 7

'System.Net.Moles.SWebResponse.SupportsHeaders':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 303324 30 DGALib.IO.Tests

错误 8

'System.Net.Moles.SFileWebResponse.Dispose(bool)':找不到合适的方法来覆盖 [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 251374 33 DGALib.IO.Tests

最后

错误 28

命令 ""C:\Program Files\Microsoft Moles\bin\moles.exe" @C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\moles.args" 以代码 -1002 退出。DGALib.IO.Tests

我们不能鼹鼠system.dll吗?

0 投票
1 回答
776 浏览

.net - 在构建服务器上运行 Moles - 任何想法如何跳过代码生成?

运行 Moles 0.94 以剔除 3rdparty 程序集中的某些类型,否则这些类型很难测试。在本地运行良好,测试通过并且解决方案编译良好。第一次编译确实需要相当长的时间,因为它生成了 moles 程序集(将它们放入一个名为 \molesassemblies 的子文件夹中),但随后的速度要快得多 - moles 输出以下内容:

问题是,我如何在每次重新同步(拆除)工作区的构建服务器上模仿这种行为?这甚至可能吗?(目前使用 TFS 2010 作为构建服务器)。

我天真地尝试检查名为 \molesassemblies\ 的项目子文件夹的内容,希望当 msbuild 在解决方案编译期间调用 moles 框架时,它会识别出程序集已经存在,从而跳过代码生成。然而,仅仅这样做似乎并没有奏效。框架似乎认为它需要重新生成代码,然后抱怨签入的程序集是只读的:

任何关于我可以做些什么来完成这项工作的指导将不胜感激。

谢谢。

0 投票
0 回答
143 浏览

compact-framework - Microsoft Moles 是否支持 .NET Compact Framework?

我目前正在为使用 .NET Compact Framework 2.0 的基于 WinCE 的应用程序进行单元测试。

我想知道,Moles Framework 是否支持 .NET Compact Framework 2.0?如果没有,有人可以建议另一个支持 .NET Compact Framework 的模拟框架吗?

0 投票
1 回答
333 浏览

moles - Moles 不为某些功能生成委托的原因是什么?

对于某些实例方法,我似乎遇到了 Moles生成委托的令人困惑的问题。

而不是显示确切的方法(虽然我会指出它是一个 Web 服务代理方法,在它的参数前面有无数的属性)我将提出标题中的上述问题:

Moles 不为某些方法生成委托的原因是什么?

我在手册中注意到的唯一与此问题几乎没有任何关系的事情是,如果私有方法的参数对生成的程序集不可见,则不会生成其受人尊敬的委托。看到我的问题是如何使用公共代理 Web 服务方法,必须有更多的原因说明为什么没有生成委托。

在此先感谢您的帮助!

0 投票
1 回答
494 浏览

moles - Pex & Moles - 依赖注射

我是 Pex 和 Moles 的新手。我正在尝试在我的代码上运行 Pex,但我正在使用构造函数注入。有没有办法指导 Pex 如何注入构造函数?

编辑

我需要注入一个存根 userRepository。调用 _userRepository.GetById(id) 时,Pex 失败并出现 NullReferenceException。我一直在使用 Moq 进行单元测试,但我想切换到 pex 和 moles

我应该使用 PexFactories 创建我的存根吗?

0 投票
0 回答
1587 浏览

.net-4.0 - 无法在 Visual Studio 2010 SP1 中引用 Microsoft.Moles.Framework.dll

实际上我已经解决了这个问题,但我仍然对我解决这个问题的方式并不满意。

我有 VS2010 SP1,我需要 SP1 才能使用 Azure SDK。

首先,安装 Pex 和 Moles 以某种方式创建了 System.XML.dll 的问题。它只是从所有项目的参考资料中消失了。我必须明确找到它并将其连接到使用它的所有解决方案。

此外,Moles 本身存在更大的问题。TestProjects 只是无法找到 Microsoft.Moles.Framework.dll。它产生了各种各样的错误。

当我尝试在“添加引用”对话框中添加对 Microsoft.Moles.Framework 的引用时,我收到消息:“Microsoft.Moles.Framework,Version=0.94.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”与 .NET Framework 4 不兼容

解决方案是在 C:\Program Files\Microsoft Moles\PublicAssembliesSilverlight 中显式添加对 Microsoft.Moles.Framework.dll 的引用。在那之后,到目前为止一切正常。

我希望这些信息对某人有所帮助。

0 投票
1 回答
183 浏览

.net - 哪些类有 Moles 可以重定向的方法?

我见过使用 Moles 进行重定向的示例,DateTime.Now但是当我尝试重定向时,System.Net.Sockets.TcpClient.GetStream我无法MTcpClient在 Intellisense 上显示相应的内容。

Moles 可以重定向的类的数量是否有限?有没有我错过的步骤?