C# TDD 测试数组 [int] 未按预期工作

C# TDD Testing an array[int] not working as expected

我正在尝试为一个方法创建一个测试,该方法传递了一个 AllNumbers 的 int[] 数组和 returns 一个仅包含 EvenNumbers 的 int[] 数组。尽管调试测试显示 ExpectedActual 相同,但测试仍然失败。我猜这是一个 .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 只会比较引用。