[英]How do you unit test if two jagged arrays are equal?
我有一个手动提取日期的功能。
[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,我意识到返回数组是不好的做法,因为它们是可变的。 但是我仍然想知道除了使用循环来断言数组中的每个元素之外我怎么能测试这个。
由于您不能使用使用引用而不是数组内容的Hashcode,因此要采用嵌套循环中的所有值进行迭代,逐个值进行比较(如stackoverflow.com/questions/2893297/iterate- multi-dimensional-array-with-nested-foreach-statement ),使用在第一次不匹配时设置为false的布尔值,并在单元测试中断言此布尔值为true 。
请参阅https://fluentassertions.com/introduction中的“收集”部分,它可能会对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.