- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用
比较两个列表 CollectionAssert.AreEqual(ListExpected, ListActual);
但是我得到了一个异常(exception)
Expected and actual are both <System.Collections.Generic.List`1[API.Program.Relation]> with 11 elements
Values differ at index [0]
Expected: <API.Program.Relation>
But was: <API.Program.Relation>
但是当我使用 Assert.AreEqual
逐字段比较零元素时,一切都很好。
知道为什么我不能使用 CollectionAssert
进行比较
最佳答案
在 .NET 中,如果一个对象的 Equals(object other)
方法返回 true,则该对象被“声明”为等于另一个对象。您需要为您的 API.Program.Relation
类实现该方法,否则 .NET 会认为您的对象不同,除非它们是引用相等的。所有字段都相同这一事实对 .NET 来说并不重要:如果您需要逐个字段的相等语义,则需要提供支持它的 Equals
实现。
当您覆盖 Equals
时,不要忘记同时覆盖 GetHashCode
- 它们必须一起覆盖。
如果出于某种原因你不想或不能覆盖 Equals
,你可以使用 an overload of CollectionAssert.AreEqual
它采用 IComparer
的实例来帮助比较集合元素。
关于c# - CollectionAssert.AreEqual 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251611/
考虑这个结构: public struct MyNumber { private readonly int _value; public MyNumber(int myNumber)
我正在为我正在处理的一个简单的控制台游戏项目运行以下测试,该项目因 Assert.AreEqual 失败而失败。 [TestMethod] public void TestMethod1()
我有一个我无法解释的非常奇怪的行为。 我有以下类(class): public class Project { public virtual int Id { get; set; }
我有以下单元测试: string MtrlCode = "0"; Assessment target = new Assessment(MtrlCode); List EdgeCaseSymbolCo
我正在尝试使用 比较两个列表 CollectionAssert.AreEqual(ListExpected, ListActual); 但是我得到了一个异常(exception) Expected
我的父组件处理对服务器的请求并为其子组件提供来自响应的数据。在这种情况下,一个子组件(FilterSidebar:包含过滤器组件)应该只呈现一次,因为过滤器将从初始请求的数据创建。 这就是为什么我要使
我对从集合中获取对象的方法进行了单元测试。这一直失败,我不明白为什么,所以我在下面创建了一个非常简单的测试来创建 2 个供应商对象并测试它们是否相等,看看我是否可以在我的代码测试中发现问题。但是这个测
java.lang.StackOverflowError at kotlin.jvm.internal.Intrinsics.areEqual(Intrinsics.java:164)
假设我有一个 data class Eq(x: Int?) 这将生成一个看起来像这样的 equals 方法 public boolean equals(Object other){ if(th
我是 Java 初学者。我想在下面的类中实现一些基本功能。 /*Demonstrate the different data types in java*/ import java.io.*; imp
我正在为代码生成器编写单元测试,我的大部分测试将跨越多行的输出与一些黄金输出进行比较。目前,我正在将输出与 Assert.AreEqual(string, string) 进行比较,后者显示第一个差异
举个例子: string x = null; var y = String.Empty; Assert.AreEqual(x, y); // test fails! Asser
我正在进行一些单元测试,但不确定为什么这个特定测试会失败。 测试是为了断言自定义 View 引擎在正确的位置查找 View 。 在我的自定义 View 引擎中是这样的: AreaMasterLocat
VS UnitTest 项目中断言的标准行为是仅告诉我测试在特定行上失败。 但是有时候,如果我可以在这样的断言失败时中断,那会很方便。因为仅在该行设置断点也会导致测试用例不失败。如果我可以在断言失败时
我对这一切都很陌生,所以任何帮助都将不胜感激。 我已经从 url 方法创建了一个下载图像,我需要对其进行测试。 我已尝试填写测试参数,但我不确定要输入什么。 你能告诉我要去哪里吗, 谢谢。亚伦 [Te
示例: Assert.AreEqual(**null**, Program.nDaysMonth(5, -10), "Error nDaysMonth, Month may -10."); 我希望有一
我有一个类 MyCustomClass: public MyCustomClass { public MyCustomClass() { MyObject = new
我正在编写一些单元测试,但以下断言失败了: Assert.AreEqual(expected.Episode, actual.Episode); 如果我改为调用它,它会成功: Assert.IsTru
更新 3: This page告诉我如何用三行来做。任何人都知道如何在一行中完成它? for (int i = 0; i < 5; i++) { my_value_to_verify = get
我创建了一个自定义结构来表示金额。它基本上是 decimal 的包装器。它有一个隐式转换运算符,可以将其转换回 decimal。 在我的单元测试中,我断言金额等于原始十进制值,但测试失败。 [Test
我是一名优秀的程序员,十分优秀!