3

我有一个手动提取日期的功能。

[TestMethod]
public void TestRemoveTwoDates()
{
    String test = "at 06/2/2012 to 12/10/2012";
    int[][] actual = String_Parser.RemoveTwoDates(test, "to");
    int[][] expected = new int[2][];
    expected[0] = new int[3] { 6, 2, 2012 };
    expected[1] = new int[3] { 12, 10, 2012 };

    CollectionAssert.AreEqual(expected, actual);
}

PS 浏览 SO,我意识到返回数组不是一个好习惯,因为它们是可变的。但我仍然想知道如何测试这个,而不是使用循环断言数组中的每个元素。

4

2 回答 2

4

由于您不能使用使用引用而不是数组内容的哈希码,因此要采取的方法是在嵌套循环中迭代所有值,逐个比较值(如stackoverflow.com/questions/2893297/iterate- multi-dimensional-array-with-nested-foreach-statement ),使用您在第一次不匹配时设置为 false 的布尔值,并在单元测试中断言该布尔值为true 。

于 2012-11-02T06:12:36.530 回答
0

查看https://fluentassertions.com/introduction中的 Collection 部分,它可能会对您有所帮助

于 2012-11-02T06:40:19.703 回答