C# TDD 测试数组 [int] 未按预期工作
C# TDD Testing an array[int] not working as expected
我正在尝试为一个方法创建一个测试,该方法传递了一个 AllNumbers 的 int[] 数组和 returns 一个仅包含 EvenNumbers 的 int[] 数组。尽管调试测试显示 Expected
和 Actual
相同,但测试仍然失败。我猜这是一个 .Equals
与 ==
的问题?
错误:
Failed TestEvenNumbers CalculatorEngineTests Assert.AreEqual failed. Expected:<System.Int32[]>. Actual:<System.Int32[]>.
这是我的测试:
[TestMethod]
public void TestEvenNumbers()
{
Calculator target = new Calculator();
int[] test = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] expected = { 2, 4, 6, 8 };
int[] actual = target.GetEvenNumbers(test);
//This passes
Assert.AreEqual(expected[1], actual[1]);
//This fails
Assert.AreEqual(expected, actual);
}
这是我要测试的方法:
public int[] GetEvenNumbers(int[] arr)
{
var evenNums =
from num in arr
where num % 2 == 0
select num;
return evenNums.ToArray<int>();
}
尝试:
CollectionAssert.AreEqual(expected, actual);
断言集合包含相同的东西,因为我相信 Assert.AreEqual 只会比较引用。
我正在尝试为一个方法创建一个测试,该方法传递了一个 AllNumbers 的 int[] 数组和 returns 一个仅包含 EvenNumbers 的 int[] 数组。尽管调试测试显示 Expected
和 Actual
相同,但测试仍然失败。我猜这是一个 .Equals
与 ==
的问题?
错误:
Failed TestEvenNumbers CalculatorEngineTests Assert.AreEqual failed. Expected:<System.Int32[]>. Actual:<System.Int32[]>.
这是我的测试:
[TestMethod]
public void TestEvenNumbers()
{
Calculator target = new Calculator();
int[] test = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] expected = { 2, 4, 6, 8 };
int[] actual = target.GetEvenNumbers(test);
//This passes
Assert.AreEqual(expected[1], actual[1]);
//This fails
Assert.AreEqual(expected, actual);
}
这是我要测试的方法:
public int[] GetEvenNumbers(int[] arr)
{
var evenNums =
from num in arr
where num % 2 == 0
select num;
return evenNums.ToArray<int>();
}
尝试:
CollectionAssert.AreEqual(expected, actual);
断言集合包含相同的东西,因为我相信 Assert.AreEqual 只会比较引用。