2015-11-22 106 views
1

我试图在Visual Studio 2013中进行单元测试,我知道使用下面的方法和提供的参数将返回一个包含“搜索项为空或包含无效字符的内容的列表,请再试一次”。C#单元测试列表

我的方法是

public List<string> SearchAnagram(string searchTerm,int userid) 
    { 
     List<string> matchedAnagrams = new List<string>(); 

     matchedAnagrams.Add("Search term empty or contains invalid characters, please try again");  

     return matchedAnagrams;  
    } 

测试如下方法:

public void TestDigitSearchTerm() 
    { 
     List<string> matchedAnagrams = new List<string>(); 
     matchedAnagrams.Add("Search term empty or contains invalid characters, please try again"); 
     Assert.AreEqual(matchedAnagrams, anagram.SearchAnagram("gd32", 1)); 
    } 

但是我收到的

Message: Assert.AreEqual failed. 
Expected:<System.Collections.Generic.List`1[System.String]>. 
Actual: <System.Collections.Generic.List`1[System.String]>. 

从我可以看到他们是他们完全一样的所以测试应该工作。

任何帮助,将不胜感激

回答

1

尝试CollectionAssert

CollectionAssert.AreEqual(matchedAnagrams, anagram.SearchAnagram("gd32", 1)) 

或者

CollectionAssert.AreEquivalent(matchedAnagrams, anagram.SearchAnagram("gd32", 1)) 
+1

谢谢!工作得很好,没有意识到还有另一个断言,要等几分钟才能回答。 – Hopeless

+0

或者,断言'SeuquenceEqual' https://msdn.microsoft.com/library/bb348567(v=vs.100).aspx –