比较单元测试中的两个数组,抛出AssertFailedException异常
本文关键字:数组 两个 抛出 异常 AssertFailedException 单元测试 比较 | 更新日期: 2023-09-27 18:10:41
我正在为准备好的代码编写单元测试,并且我正在接收一个意外的AssertFailedException,试图运行其中一个测试。他来了:
[TestMethod]
public void TestPositionGetter()
{
testPlayer.Position = new int[] { 1, 3 };
int[] expectedPosition = testPlayer.Position;
Assert.AreEqual(expectedPosition, testPlayer.Position);
}
这里是我要测试的Player类中的Position属性:
public int[] Position
{
get
{
return new int[] { this.PositionX, this.PositionY };
}
set
{
this.PositionX = value[0];
this.PositionY = value[1];
}
}
调试测试,在本地变量窗口播放。Position和expectedPosition看起来很相似,但测试仍然失败。恐怕问题出在参考资料上。
您正在比较一个int[]
的不同实例。Assert.AreEqual
参照比较。试试CollectionAssert.AreEqual
。
CollectionAssert.AreEqual(expectedPosition, testPlayer.Position);
这将比较数组元素。
另外,您的Position
属性闻起来像糟糕的设计。你真的需要每次获得一个值都创建一个新的数组吗?