问题标签 [pex]

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 回答
193 浏览

c# - 将被测 PEX 代码限制为单一方法?

PEX 中的被测代码可以限制为单一方法吗?我知道您可以将其限制为程序集和类,但是成员呢?

我基本上是在尝试为以下方法实现 100% 的代码覆盖率:

以下 PUT 实现了12/15的代码覆盖率,因为我只测试它可以返回的可能 2 个值中的 1 个:

为了实现对这个 PUT 的完全覆盖,我需要更改对象的状态,以便该方法同时命中两个分支。我可以通过使用工厂方法使用单独的 PUT 来设置不同的状态来满足这一点,但这会给我留下 2 个代码覆盖不完整的 PUT,而不是 1 个完全覆盖的 PUT。我从理论上意识到 2 个 PUT 的组合覆盖率为 100%,但在实践中我需要 100% 的数字,这样我才能正确设置 CI。

因此,要到达同一 PUT 中的另一个分支,我必须将以下代码附加到上述 2 行:

假设该GetLastSymbol方法的代码覆盖率现在是 100%,但是因为我已经对被测类型引入了另一个方法调用,所以代码覆盖率现在下降到20/29

如何将 PUT 限制为仅测量单个方法的代码覆盖率?我意识到我可能完全误解了这个指标,所以请解释为什么会这样:)

0 投票
1 回答
217 浏览

pex - PexChoose 非泛型方法

有没有办法在运行时指定 PexChoose 的返回类型?例如 PexChoose.Value(name, Type)?

这对于制作根据运行时约束生成不同类型值的通用模型很有用。

0 投票
1 回答
919 浏览

moles - 排除汇编中的文件被篡改

我正在使用 moles 为我的团队使用的遗留代码生成模拟类。是否可以排除程序集中的某些类被篡改?对于遗留代码中的一些自动生成的类,我遇到了很多错误,我想排除这些错误。

0 投票
0 回答
385 浏览

sharepoint-2010 - 为什么 Moles 选择了用于 .NET v4.0 的 SharePoint.Behaviors,而其余的都是 v3.5?

作为更大的 SP 2010 沙盒解决方案的一部分,我有一个访问 SharePoint 2010 对象模型的 ClassLibrary。所有项目都针对 .NET v3.5(不是客户端配置文件)。然后是用于测试 ClassLibrary 的 ASP.NET WebApplication 项目 - 仍然是 .NET v3.5。

我正在尝试使用 Microsoft Moles 来模拟 SPContext.Current - 我已经知道并使用过 - 我遇到了这个问题:在每次构建时,moles 框架总是会Microsoft.SharePoint.Behaviors按顺序选择运行时 v4.0.30319 的 DLL将其复制到 MolesAssemblies 中。相反,Microsoft.SharePoint.Moles它选择了 v2.0.50727。

顺便说一下,这些只是C:\Program Files\Microsoft Moles\MolesAssemblies\Microsoft.SharePoint\14.0.0.0__71e9bce111e9429c. 但我记得在 Moles 安装过程中创建了 v4.0 和 v3.5 的 moles。

有没有办法告诉Moles 为运行时 v3.5 构建和/或复制 DLL?或者我应该在一个特殊的地方建造和存放它们,以便让鼹鼠捡起它们?

不知何故,我还查看了在 build( ...\obj\Debug\Moles\moles.args) 期间创建的临时选项文件,最后一个选项实际上是/clrversion:v2.0.50727 /clrversion2 /targetframeworkversion:v3.5.

环境:Windows 7 64 位,VS 2010 SP1,Moles v0.94.51023.0 - .NET v4.0.30319(仅安装 Moles,无 Pex)。

0 投票
1 回答
363 浏览

c# - 为什么方法 DateTimeParse.TryParse(String, DateTimeFormatInfo, DateTimeStyles, DateTime&) 未检测?

我一直在尝试让一些 PEX 示例正常工作,但是任何使用 DateTime.TryParse/DateTime.Parse 的东西都会产生令人失望的结果。Pex 没有提供任何有趣的参数,如果我用可达到的含义包装它,它只是说 1 Missed Goal。

我认为这一定是因为我收到的有关 DateTimeParse.TryParse 未检测的消息,但为什么它首先没有检测?为什么文档“Microsoft Pex 的参数化测试模式”使用 DateTime 作为示例,如果它没有做任何有趣的事情?

0 投票
1 回答
558 浏览

c# - Microsoft PEX 放弃错误消息 Path Bounds Exceeded

在 Web 应用程序的 DAL 层上运行 Pex 时,Pex 收到错误消息 Path Bounds Exceeded。

请建议我继续处理此异常并解释在 DAL 层上执行 PEX 的过程:

0 投票
1 回答
293 浏览

c# - Pex 和 unicode 编码

我正在玩Pex并有一个简单的课程。代码是:

我创建了以下内容PexMethod

Pex Exploration想出了这个单元测试:

奇怪的是,栈一离开带有udc00的单元测试,进入参数化测试,param Line就用:'�'表示

如您所见,我正在使用 Unicode 进行所有缓冲。当我最终尝试从内存流中读取字符串时,我得到一个奇怪的符号,看起来像一个带有问号的菱形。

我得到的错误是:“PexAssertFailedException”“预期'奇怪的符号',得到'�'”

有谁知道发生了什么?

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 回答
504 浏览

c# - 为什么在使用 pex 迭代 PropertyInfo 时出现 indexoutofboundsexception?

我有以下方法:

Pex 探索在以下代码部分返回异常:

我不明白为什么我会得到:

系统错误:索引超出了数组异常的范围。

我应该添加任何 PexAttribute 或 PexAssume 吗?能否请你帮忙?

“name”在“rs”中,不等于 null,但问题出在一行:'pi.SetValue(o, s, null);'

0 投票
1 回答
577 浏览

c# - 使用 Pex 进行单元测试

我想使用 Pex 对以下代码进行单元测试:

此函数从 gridview 行中搜索文本并将输入字符串替换为 gridview 的 mapfield。

如何使用 Pex 进行单元测试?