我正在运行测试,但如果失败我不知道为什么:
Proj.Tests.StatTests.GetResults_RegularPage_ReturnListOfResults:
Expected and actual are both <System.Collections.Generic.List`1[Proj.Classes.StatResult]> with 50 elements
Values differ at index [0]
Expected: <test;98318>
But was: <test;98318>
如您所见,值是相同的。 这是一些代码:
public class StatResult
{
public string word { get; set; }
public UInt64 views { get; set; }
public override string ToString()
{
return String.Format("{0};{1}", word, views);
}
}
[Test]
public void GetResults_RegularPage_ReturnListOfResults()
{
// Arrange
WordStat instance = new WordStat(Constants.WordStatRegularPage);
// Act
List<StatResult> results = instance.GetResults();
// Assert
Assert.AreEqual(results, new List<StatResult>
{
new WordStatResult { word ="test", views = 98318},
new WordStatResult { word ="test board", views = 7801},
//... I shorted it
}
我尝试了很多方法,甚至将测试样本直接放到类里面,但无论如何都行不通。 请帮忙!
最佳答案
问题在于 NUnit 测试 StatResult
的两个实例是否相等的方式。因为您没有实现任何形式的相等比较运算符,所以相等检查默认为实例的引用。因为它们是两个不同的实例,所以它们的引用是不同的。
参见 this article有关在对象中实现平等的更多信息。
关于c# - N单位。索引 [0] 处的值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685639/