- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 MBUnit 我试图检查两个对象的值是否相同使用
Assert.AreSame(RawDataRow, result);
但是我遇到了以下失败:
Expected Value & Actual Value : {RawDataRow: CentreID = "CentreID1",
CentreLearnerRef = "CentreLearnerRef1",
ContactID = 1, DOB = 2010-05-05T00:00:00.0000000,
Email = "Email1", ErrorCodes = "ErrorCodes1",
ErrorDescription = "ErrorDescription1", FirstName = "FirstName1"}
备注:两个值在格式化时看起来相同,但它们是不同的实例。
我不想遍历每个属性。我可以从 MbUnit 执行此操作吗?
最佳答案
基本上,Assert.AreEqual
使用 Object.Equals()
验证实际实例和预期实例之间的相等性,而 Assert.AreSame
使用 Object.ReferenceEquals
.
如果你的类没有实现任何内置的平等机制;例如通过覆盖 Object.Equals
,您最终会遇到您描述的问题,因为 MbUnit不知道如何比较被测类型的两个实例。
有几种解决方案。其中之一是 Coppermill 的解决方案:您可能希望实现基于反射的结构相等比较器。但是 MbUnit 已经内置了一个 feature like that .它叫做StructuralEqualityComparer<T>
而且它非常易于使用。那么为什么要重新发明轮子呢?
Assert.AreSame(RawDataRow, result, new StructuralEqualityComparer<MyDataRow>
{
{ x => x.CentreID },
{ x => x.CentreLearnerRef, (a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase) },
{ x => x.ContactID },
// You can customize completely the comparison process...
});
无论如何,我建议您阅读那篇文章:http://interfacingreality.blogspot.com/2009/09/equality-assertions-in-mbunit-v3.html
您可能还想阅读 that article在 Gallio wiki 中。
关于c# - 比较 MbUnit 中相同的两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788278/
我正在使用 TeamCity 进行测试和生产的自动化构建。 TeamCity 在流程结束时使用 Gallio 运行我们的 mbUnit 3.1 测试。 在运行测试构建时,Gallio 应该尝试针对测试
我无法通过 TestDriven 运行的 MbUnit 测试中的 Common.Logging 框架将日志消息输出到控制台。我不确定这是否与 Gallio 在 TestDriven 中注册的方式有关。
我想弄清楚如何在 MbUnit v3 中编写组合测试。网络上的所有示例代码都引用了 MbUnit v2,这意味着使用 3 个属性: 组合测试 工厂 使用工厂 在 MbUnit v3 中没有 Using
有谁知道是否可以将结果写入某些跟踪监听器或测试报告捕捉并嵌入到测试报告中的内容? 例如, 无功贷款 = GetLoans(...参数); Assert.IsTrue(Loans.Length>0);
如何配置 Team Build 2010 build process template通过 Gallio 运行 MbUnit 测试? 最佳答案 我设法通过基于默认值创建新的构建过程模板来使其正常工作。
在 stackoverflow 上,我遇到了 mbunit。在它的页面上,它指出 mbunit 是一个生成单元测试框架,但我找不到任何描述生成单元测试框架是什么的地方。 我希望得到: 定义 有关生成单
我正在考虑将我的单元测试框架从 NUnit 迁移到 MbUnit,因为它有几个我喜欢的特性,其中之一是可并行化属性。如果我用这个属性标记测试会发生什么 i,所有的实例变量只对它们自己的线程可用还是共享
我想知道是否有一种方法可以比较 MBUnit 中的两个对象,以便在对象“看起来”相同时通过测试,即使它们是不同的实例? 例如: [TestFixture] class ComparisonTestFi
我正在尝试使用 MbUnit 测试多线程 IO 类。我的目标是让测试装置构造函数执行 3 次,对类中的每一行执行一次。然后,对于每个实例,在并行线程上多次执行测试。 但是,Icarus 在 TaskR
有点好奇,“MBUnit”中的“MB”是什么意思? 最佳答案 这意味着更好的单元测试框架:) 更严重的是,意思是基于模型 单元测试框架(引用 "Crafting A Toolchain", Jeff
如何测试IEnumerable在MBunit中是否具有SomeClass类的所有项? 我曾经使用过Visual Studio单元测试框架,并找到了CollectionAssert.AllAreInst
代码 Assert.AreEqual (9.97320998018748d, observerPosition.CenterLongitude); 产生 Expected Value & Actual
关于 mbunit v3 的新功能的文档有任何指示吗? 最佳答案 Wiki和 API documentation是 Gallio 最可靠的信息来源和 MbUnit .一些博客也很有趣(主要由贡献者维护
比如说,我有以下测试: [Test] public void MyTest( [RandomNumbers( Count=100, Minimum=0, Maximum=1000 )]
从 MBUnit 我试图检查两个对象的值是否相同使用 Assert.AreSame(RawDataRow, result); 但是我遇到了以下失败: Expected Value & Actual V
我需要测试一个类,该类的返回值取决于数据库中的值。我可以在单元测试中访问数据库,但这些值可能会改变。对此有标准解决方案吗? 最佳答案 标准答案是重新设计你的类,这样你就可以模拟出依赖关系。这通常是通过
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我试过用谷歌搜索这个但是一无所获。基本上,我想按照我定义的顺序运行每一行。例如,如果我有这个: [Row("a")] [Row("b")] [Row("c")] [Test] public void
Resharper 6 刚刚发布。我很想更新,但 MBUnit 我上次尝试 EAP 时,支持仍然中断。 MBUnit 现在是否与 Resharper 6 一起使用? 谢谢, 阿德里安 最佳答案 Gal
我读到 MbUnit 是类固醇上的 NUnit,但我不明白为什么。从我在这里读到的内容,我听说 NUnit 比 MbUnit 更受欢迎。主要原因之一是因为它具有流畅的界面。这是唯一的原因吗? 为什么我
我是一名优秀的程序员,十分优秀!