首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Visual Studio 2008测试框架中断言数组相等

在Visual Studio 2008测试框架中断言数组相等
EN

Stack Overflow用户
提问于 2009-05-22 12:14:22
回答 4查看 37.9K关注 0票数 85

有没有一种简单的方法可以在单元测试中检查两个数组相等(即,具有相同数量的元素,并且每个元素都是相同的?)

在Java语言中,我会使用assertArrayEquals (foo, bar);,但似乎没有与C#相同的东西。我尝试了Assert.AreEqual(new string[]{"a", "b"}, MyFunc("ab"));,但是即使该函数返回一个带有"a“和"b”的数组,检查仍然失败

这是使用Visual Studio 2008 Team Suite,带有内置的单元测试框架。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-22 12:18:56

这是CollectionAssert.AreEqual,参见the documentation for CollectionAssert

票数 156
EN

Stack Overflow用户

发布于 2010-05-05 06:07:10

Class1.cs:

代码语言:javascript
复制
namespace ClassLibrary1
{
    public class Class1
    {
        Array arr1 = new[] { 1, 2, 3, 4, 5 };
        public Array getArray()
        {
            return arr1;
        }
    }
}

ArrayEqualTest.cs:

代码语言:javascript
复制
        [TestMethod()]
        public void getArrayTest()
        {
            Class1 target = new Class1(); 
            Array expected = new []{1,2,3,4,5}; 
            Array actual;
            actual = target.getArray();
            CollectionAssert.AreEqual(expected, actual);
            //Assert.IsTrue(expected.S actual, "is the test results");
        }

测试成功,发现错误:

代码语言:javascript
复制
   CollectionAssert.AreEqual failed. (Element at index 3 do not match.)
票数 24
EN

Stack Overflow用户

发布于 2009-05-22 12:16:23

在.NET 3.5中,也许可以考虑Assert.IsTrue(foo.SequenceEqual(bar)); -尽管它不会告诉你它在哪个索引上不同。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/897552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档