2014-04-25 95 views
0

我想在下面的类的方法做单元测试的方法:单元测试,搜索元素分贝

public class SearchInfo : IDisposable 
     { 
      public List<SearchResult> SerialResults { get; set; } 
      public List<SearchResult> TagResults { get; set; } 
      /// <summary> 
      /// Uses the Search string to filter a resultset by Serial and Tag 
      /// </summary> 
      /// <param name="search"></param> 
      public SearchInfo(string search) 
      { 
       SerialResults = new List<SearchResult>(); 
       TagResults = new List<SearchResult>(); 

       SerialResults.AddRange(FindSerial(search)); 
       TagResults.AddRange(FindTags(search)); 

      } 

      private static IEnumerable<SearchResult> FindTags(string search) 
      { 

       List<SearchResult> result; 
       using (var db = new TIPWebITDataContext()) 
       { 
        result = (from i in db.tblTechInventories 
           where i.Tag.Equals(search) 
           select new SearchResult() 
            { 
             SearchType = "Tag", 
             Key = i.Tag, 
             KeyCaption = i.Tag, 
             Name = i.tblTechItem.ItemName 

            }).ToList(); 
       } 
       return result; 
      } 
      private static IEnumerable<SearchResult> FindSerial(string search) 
      { 
       List<SearchResult> result; 
       using (var db = new TIPWebITDataContext()) 
       { 
        result = (from i in db.tblTechInventories 
           where i.Serial.Contains(search) 
           select new SearchResult() 
           { 
            SearchType = "Searial", 
            Key = i.Tag, 
            KeyCaption = i.Serial, 
            Name = i.tblTechItem.ItemName 

           }).ToList(); 
       } 
       return result; 

      } 

      #region Implementation of IDisposable 

      public void Dispose() 
      { 
       SerialResults = null; 
       TagResults = null; 
      } 

      #endregion 
     } 

     public class SearchResult 
     { 
      public string SearchType { get; set; } 
      public string Key { get; set; } 
      public string KeyCaption { get; set; } 
      public string Name { get; set; } 
     } 


    } 

注:

方法Name = FindTags()返回返回结果。 该方法检查输入的标签是否存在于数据库中。如果可用,则返回结果。

我们将如何对这种方法进行单元测试?

有嘲笑的回购 已覆盖方案“抛出异常” 问题是所有方案中如何进行单元测试顺利即用户; S makeModel与仓库的makeModel匹配

回答

0

严格地说,这是一个整合测试而不是单元测试。

通过单元测试,您可以模拟数据库交互并简单测试代码中的逻辑。

但是,我明白以这种方式进行测试并且自己进行测试会更容易。处理这个问题的方法是将测试数据注入到您的数据库中,以获得一致的结果并对此进行断言。这个测试数据可以在TestSetup中注入,如果需要的话可以在TestCleanup中移除。

+0

Thanks @ChrisBint。你能否建议我为上面的代码编写代码(单元测试)。我的意思是,你能生成TestMethod吗? – user3567564