c# - IEnumerable.contains 在集合中找不到匹配项,该集合确实存在
问题描述
我有一个IEnumerable<MyClass>
从 foo 方法返回的。MyClass
包含一个嵌套类,通常如下所示。问题Assert
总是返回 false。
MyClass
{
SomeNestedClass
{
public decimal decimalField1;
public int intField2;
}
}
我正在编写一个单元测试来测试该Foo
方法
// Arrange
var expectedItem = new MyClass
{
new SomeNestedClass
{
decimalField1 = 10M,
intField2 = 20
}
}
// Act
var results = sut.Foo();
// Assert
Assert.IsTrue(results.Contains(expectedItem));
问题是断言总是错误的。
解决方案
我们那里没有足够的信息(sut.Foo(); 的实现),但我怀疑您必须覆盖 MyClass 类型中的 Object.Equals() 方法。否则, Contains() 函数将仅检查引用是否相等。
推荐阅读
- variables - zsh 使用多行声明 PROMPT
- powershell - PowerShell:如果通过调度程序执行,SendKeys 将不起作用
- reactjs - Firebase Firestore - 在另一个未知 ID 的文档中访问文档
- java - 尝试运行示例 Spring Boot 应用程序时出现格式错误的 url excpetion
- javascript - 如何使用引导程序在 vue 中以相同高度将徽标放在标题旁边?
- android - RecyclerView 上的 SearchView 没有工作如何解决?
- c - 我不知道为什么会出现预期的错误和预期的错误,我也不知道出了什么问题
- python - 正则表达式获取捕获组的大小
- node.js - Alexa技能中Node.js中的发布请求问题
- c# - 如何在 DataGridView 上获得自动调整的列宽以减少填充?