Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 单元测试在数据库中搜索元素的方法_Asp.net_Ajax_Unit Testing_C# 4.0_Tdd - Fatal编程技术网

Asp.net 单元测试在数据库中搜索元素的方法

Asp.net 单元测试在数据库中搜索元素的方法,asp.net,ajax,unit-testing,c#-4.0,tdd,Asp.net,Ajax,Unit Testing,C# 4.0,Tdd,我想对以下类中的方法进行单元测试: public class SearchInfo : IDisposable { public List<SearchResult> SerialResults { get; set; } public List<SearchResult> TagResults { get; set; } /// <summary>

我想对以下类中的方法进行单元测试:

 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; }
        }


    }
注:

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

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

他们嘲笑回购协议 我们已经介绍了抛出异常的场景
问题是如何单元测试所有运行良好的ie用户的场景;与存储库的makeModel匹配的makeModel严格来说,这是一个集成测试,而不是单元测试

通过单元测试,您可以模拟DB交互并简单地测试代码中的逻辑


然而,我理解以这种方式进行测试更容易,我自己也这样做。处理这一问题的方法是将测试数据注入数据库,以提供一致的结果,并对此进行断言。此测试数据可以在TestSetup中注入,如果需要,可以在TestCleanup中删除。

谢谢@ChrisBint。你能给我建议一下上面代码的代码单元测试吗?我的意思是,你能给出测试方法吗。