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

.net - 如何对网络连接进行单元测试?

我想对下面的代码进行单元测试。我一直在使用 MSTest,并尝试学习Microsoft MolesRhinoMocks。但我不能让他们两个都帮我。我知道我可以彻底更改代码以使用使其更具可测试性的接口,但这需要我编写封装 TcpClient、NetworkStream、StreamWriter 和 StreamReader 的接口和实现。

我已经为此编写了集成测试,我想精通痣的人可以很容易地为此进行单元测试,而无需更改代码。

0 投票
1 回答
362 浏览

moles - 生成痣存根

我是 Pex 和 Moles 的新手,我想利用参数化单元测试。我正在使用构造函数注入,我想为我的参数创建一个 moles 存根。

我读过的文档说 Moles 将为我的 SIUserRepository 存储库生成一个存根类型。但我不知道如何生成存根。谁能提供一个例子。谢谢

0 投票
1 回答
267 浏览

visual-studio-2010 - Visual Studio - 从搜索中排除痣文件

我知道 Visual Studio 允许您在查找和替换对话框中指定搜索的文件类型,这通常效果很好。但是,生成的 moles 文件的路径以“mgcs”结尾。搜索 .cs 文件时,也会搜索这些文件,这会在查找结果中产生大量噪音。有没有办法指定在查找和替换中应忽略匹配“*mgcs”的文件?

0 投票
1 回答
1586 浏览

.net - 带有 InternalsVisibleTo 的痣会创建“程序集引用无效”警告

又一年,关于痣的另一个问题。我有一个带有内部密封类的程序集,我想在我用于单元测试的测试项目中使用它。

根据 Moles 文档,我应该添加一个

属性,以便我可以从我的测试项目中访问内部类。但是,不幸的是,这不起作用,因为“MyAssembly”是强签名的。

因此,按照文档,我将公钥添加到上面的行中,导致

不幸的是,现在编译“MyAssembly”时出现以下错误:

程序集引用“MyMoles.Moles,PublicKey=0123456...”无效,无法解析

文档说“...... Moles 框架总是使用相同的密钥来签署程序集......”,但正如编译器所说,这不起作用。我还使用 Reflector 检查了生成的文件“MyAssembly.Moles.dll”,以验证我使用了正确的公钥(我这样做了),所以我被卡住了,因为我真的不知道问题出在哪里。

有任何想法吗?

0 投票
1 回答
1426 浏览

tfs - 警告无法解析构建服务器上的 Moles dll

我们在我们的解决方案中使用摩尔 0.94 进行一些测试。但是,每次首次编译时,构建服务器都会发出几个警告:

我的理解是构建服务器在开始构建之前会尝试解析测试项目的所有引用,如果在molesassembly文件夹下找不到moles dll(因为第一次是空的),它会生成一个像上面这样的警告。

但是当msbuild开始构建这个测试项目的时候,会生成mole组件并复制到moleassemblies文件夹中,所以不会报错。

综上所述,第一次构建会部分成功,下次构建会完全成功。

我们试图在构建服务器上不出现任何警告。有什么办法可以消除构建服务器上的这个警告吗?

0 投票
1 回答
347 浏览

moles - 通过 pex 和 moles 进行单元测试和 DB 隔离

我有一个 VS winforms 项目,其中有很多数据库调用。

每当我创建单元测试时,都会有更多的方法,花费更多的时间来消耗更多的单元测试项目。

我如何隔离数据库调用,或者如果我使用微软的 moles 和 pex,我将能够隔离数据库调用吗?任何关于痣和 pex 的样本都会非常有帮助。

0 投票
3 回答
1923 浏览

c# - 当测试的主机类型为“Moles”时,无法访问配置文件中的信息

当单元测试的主机类型为“Moles”时,我们在通过单元测试访问 .net 配置文件(例如 app.config 和 web.config)中的信息时遇到问题。这引起了很多头痛,所以我希望有人知道可以做什么。

我们使用的是 Visual Studio 2010,我相信我们已经在安装了 VS 2010 SP1 的机器和未安装 SP1 的机器上进行了尝试,并在 32 位和 64 位机器上进行了尝试。

我冒昧地将测试简化为最简单的术语。可以通过编写由以下两个文件组成的单元测试项目并在取消注释唯一的注释行后运行测试来重新创建该问题。该测试在没有主机类型的情况下工作,但是当您将 Moles 作为主机类型引入时,测试中的 null 断言会失败。我们不确定为什么。

一、配置文件App.config:

接下来,包含单个测试的测试类:

如果有人能提供任何见解,我将不胜感激。

非常感谢,

缺口

0 投票
2 回答
188 浏览

mstest - NativeMethods.cs 没有痣类?

我有一个名为 NativeMethods.cs 的类,其中包含所有外部方法:

包含此类的程序集具有相应的 .Moles 文件。程序集中包含的所有其他类都可以被正确地删除和存根,除了这个。

没有MNativeMethods可以用来绕道的。是否有针对类名“NativeMethods”的特殊情况(极不可能)?还是针对外部方法的特例?

0 投票
1 回答
290 浏览

code-coverage - Microsoft Moles Framework 是否生成代码覆盖率

我有一个使用 Moles 的简单测试项目,我检查了测试设置中的标志以创建代码覆盖率,但 Moles 测试不会生成代码覆盖率。

我没有使用 Pex。

Microsoft Moles Framework 是否生成代码覆盖率?

谢谢

0 投票
1 回答
312 浏览

moles - 如何获得 MSDN Moles 教程来构建?

我有一个不寻常的问题。我需要帮助来理解原始发帖人对他在 MSDN 论坛上 6 个月大的查询的回答。

OP 被告知要在 StackOverflow 上提出更多问题,因此要求 OP 澄清他的答案是没有意义的。我将不胜感激在这个论坛上的一些帮助。我希望我没有违反任何论坛规则或礼仪规则。

我将按时间顺序复制并粘贴帖子中的相关片段。


[OP] 我正在学习使用 Microsoft Moles 进行单元测试教程 ( http://research.microsoft.com/en-us/projects/pex/molestutorial.pdf ) 并在任务 2:创建代码中遇到步骤 #5生成的存根。我无法解析 SIFileSystem(编译错误,因为它无法找到)。


[OP] 我终于把程序编译好了。但如果其他人偶然发现这篇文章并遇到同样的问题,这就是我所做的: - 在 StubsTutorialTest 项目中,打开 mscorlib.moles - 将程序集名称从“mscorlib”更改为“StubsTutorial” - 将 mscorlib.moles 重命名为 StubsTutorial。痣 - 构建(这将在引用中添加 StubsTutorial.Moles) - 在 UnitTest.cs 中添加“使用 StubsTutorial.Moles” 在“var fs = new SIFileSystem();”中未找到错误 离开了。


[MSDN 版主] 下次遇到问题时,Peli 和 Pex 和 Moles 开发团队的其他成员现在倾向于监控 Stack 的论坛:

https://stackoverflow.com/questions/tagged/pex-and-moles

[回到我的身边]

所以这是我的问题:

  1. 在 StubsTutorialTest 项目中,打开 mscorlib.moles

    mscorlib.moles 在本教程中从未提及。无论如何,有人怎么能打开一个DLL?

    (在 Moles 下载中实际上有一个“mscorlib.moles.dll”。)

  2. 将程序集名称从“mscorlib”更改为“StubsTutorial”

    在我的“StubsTutorial.csproj”中,没有提到“mscorlib”。我有这行:

    存根教程

  3. 将 mscorlib.moles 重命名为 StubsTutorial.moles

    他的意思是我应该添加“mscorlib.Moles”作为参考,然后重命名吗?那可能吗?

谢谢你的帮助。