问题标签 [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.
linq-to-sql - 如何使用 Moles 检查 DataContext 的更改
我正在尝试使用 Moles 对 Linq To Sql 数据上下文进行单元测试。被测方法将几个对象插入到数据上下文中。我的单元测试应该验证这些对象是否真的要提交到数据库。
我曾希望我可以使用 SubmitChanges 方法并使用 datacontext 的 GetChangeSet() 方法来检索更改。当然,我得到一个例外,因为 GetChangeSet() 方法没有被摩尔。那我在这里做什么?我错过了设置步骤吗?
编辑:这个问题似乎表明我可以使用 SubmitChanges 方法来获取 ChangeSet,但是该方法(似乎)是不可用的,因为它没有痣。这让我更加怀疑我缺少某种设置步骤。
tfs - 在使用 moles 程序集的项目上使用 TFS2010 构建失败并显示 -1002,因为无法解析引用
在玩了很多之后,我设法让 TFS 能够在我的所有项目上运行构建,除了测试项目。这些里面有一个鼹鼠组件。
我得到的错误是
C:\Program Files\Microsoft Moles\bin\Microsoft.Moles.targets (79):
命令 ""C:\Program Files\Microsoft Moles\bin\moles.exe"
@"C:\Builds\2\cv2\ DevBranchBuild\Sources\CV.BL.Tests\obj\Release\Moles\moles.args""
以代码 -1002 退出。
警告是
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1360):
无法解析此引用。
找不到程序集“CV.DAL.Moles,版本=1.0.0.0,文化=中性,处理器架构=MSIL”。
检查以确保该程序集存在于磁盘上。
如果您的代码需要此引用,您可能会遇到编译错误。
CV.DAL 是我正在安装的组件。
我正在使用最新版本的 pex 和 moles。
我还将CV.DAL.moles
文件签入 TFS(不是程序集)。一切都在我的本地机器上构建得非常好。我用来构建的机器具有完全相同的配置。确切地说,我的意思是一个是 32 位,另一个是 64 位:o(那里严重疏忽)。
有任何想法吗?
这使得 pex 和 moles 完全没用,因为它在合并分支时打破了门控签到,这是一个很大的耻辱,因为我在它们上投入了大量的时间。
编辑
哪个 molesAssemblies 目录?
痣的安装文件夹还是项目下的目录?
安装文件夹在两台机器上具有相同的文件和文件大小。
.net-3.5 - 可以在 3.5 MsTest 单元测试程序集中编写测试吗?
嗨:我很喜欢玩 Pex 和 Moles……现在是时候认真使用它来尽可能多地覆盖旧版应用程序了。
我们已经开始转换为 .NET 3.5(客户端还不能托管在 .NET 4.0 中)
我们注意到我们在让 Moles 工作时遇到了麻烦。
如果测试项目程序集是 .NET 4.0 似乎可以工作——但是当将单元测试程序集框架转换回 .NET 3.5 时(在安装 Visual Studio 2010 SP1 以提供该功能之后)它停止工作。
一直抱怨“您只能使用针对 .NET Framework 3.5 的测试程序集中的默认主机适配器运行测试”
如果客户希望一切都在 .NET 3.5 中——包括单元测试……有什么想法吗?
.net - 如何调试使用 Microsoft Moles 框架的单元测试
我们的团队正在为 .Net 项目编写单元测试。我们使用“Visual Studio 2010”IDE、“NUnit”(v. 2.5.9)单元测试框架和“Microsoft Moles”类型隔离框架。
我们遇到了一个问题:我们无法调试使用 Moles 的单元测试(而不使用 Moles 的测试可以正常调试)。使用 Moles 的测试失败并显示以下错误消息:
Microsoft.Moles.Framework.Moles.MoleInvalidOperationException :Moles 要求测试在检测过程中。
有谁知道为什么调试这些测试不起作用?
提前致谢!
.net - 如何在不安装的情况下运行使用 Microsoft Moles 编写的单元测试?
我们的团队正在使用“Visual Studio 2010”IDE 和“NUnit”(v. 2.5.9) 单元测试框架为一个大型 .Net 项目编写单元测试。我们还使用“Microsoft Moles”类型隔离框架。在我们完成为特定模块编写测试后,我们必须构建所有模块并在未安装 Moles 的不同机器上运行单元测试。
是否可以在不实际安装 moles 框架而仅通过复制和/或注册(在 GAC 或系统注册表中)特定组件的情况下运行用 moles 编写的单元测试?如果是这样,这些组件是什么?
例如,我们发现它需要在 Windows 注册表中注册“Microsoft.ExtendedReflection.ClrMonitor.x86”才能运行单元测试。
.net - Moles 可以与 nUnit 一起使用吗?
我刚刚从 Microsoft Research 看到Moles模拟框架,在我花时间看它之前,我想知道它是否可以与 nUnit 一起使用,还是我必须使用 msTest?
.net - 使用 Pex 和 Moles 进行非 PUT 测试
我想使用 .NET 4 测试一些不是针对 TDD 或任何其他形式的自动化测试编写的代码。
VS2010 中的集成单元测试不足以实现我的目标,因此我查看了 Pex & Moles。
我所拥有的是用于表示远程设备上的视频文件的代码。通过特定的 SDK 处理对设备的访问,并为该 SDK 编写包装器。使用 Moles,我可以覆盖包装函数并将它们替换为从本地文件读取数据的函数。我使用 Moles 和集成单元测试来做到这一点。但是,这还不够,因为我只能以这种方式模仿“始终工作”的设备,而实际上,它们确实经常失败。
我曾考虑将 PexChoose 添加到虚假方法的主体中,以便它们按应有的方式工作或失败,以便 Pex 构建一个包含各种方法执行结果的可能组合的树。
但是,如果我尝试从现有代码创建 Pex 测试,从测试中删除所有参数(我不需要它们,一切都安排在里面),添加模拟方法并尝试运行 Pex Explorations,它会导致“路径超出范围”消息。我试过设置非常高的界限,但没有帮助。我能做些什么来解决这个问题?
总的来说,我对 Moles、Pex 和单元测试非常陌生,所以我可能在概念上是错误的。提前致谢。
c# - 如何对带有内部异常的代码进行单元测试?
我想对以下代码进行一些单元测试覆盖:
编辑:看来我不需要 Moles 来测试这段代码。另外,我有一个错误,第 5 行和第 6 行颠倒了。
moles - 为什么框架不绕道?
我是依赖于 iTextSharp 开源 Pdf 库的单元测试代码。TextSharp 中的类之一是 PdfReader,它具有接受字节数组的构造函数之一。我将问题简化为以下内容:
但是,此代码仍然调用真正的 PdfReader 而不是模拟:
iTextSharp.text.pdf.PdfReader.CheckPdfHeader iTextSharp.text.pdf.PdfReader.ReadPdf() iTextSharp.text.pdf.PdfReader..ctor(Byte[] pdfIn, Byte[] ownerPassword) iTextSharp.text.pdf.PdfReader.. ctor(字节[] pdfIn)
毫不奇怪,它因“..System.IO.IOException: PDF header signature not found..”而爆炸
不知道我做错了什么......
-斯坦
pex - 存根生成失败,属性过时,Pex v0.94.51023.0
我有一个带有标记为过时属性的方法的接口。attributes错误参数设置为true以在使用时抛出异常。问题是这会导致存根无法为整个班级生成。当我将值更改为false时,存根会按预期生成。
我正在寻找一种方法来生成存根,同时将错误参数保留为true。
我尝试了不同的排列。