Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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
单元测试&;尝试捕获返回对象列表的方法c#_C#_Wcf_Unit Testing_Exception_Try Catch - Fatal编程技术网

单元测试&;尝试捕获返回对象列表的方法c#

单元测试&;尝试捕获返回对象列表的方法c#,c#,wcf,unit-testing,exception,try-catch,C#,Wcf,Unit Testing,Exception,Try Catch,我的WCF服务中有以下方法。我需要为它做一个单元测试,但我不确定如何做,因为它返回一个对象列表 该方法采用栅格参考,例如NN-并在列表mountslist中搜索栅格参考从NN开始的山脉 还有谁能帮我做一个试捕呢?我不知道该返回什么,因为它需要一个山上的物体。(如果未找到返回-例如列表中未列出的山) public IEnumerable GetMountainLoc(字符串mtloc) { IEnumerable resultMts= 登山者 其中(x=>x.Grid\u参考子串(0,2)

我的WCF服务中有以下方法。我需要为它做一个单元测试,但我不确定如何做,因为它返回一个对象列表

该方法采用栅格参考,例如NN-并在列表mountslist中搜索栅格参考从NN开始的山脉

还有谁能帮我做一个试捕呢?我不知道该返回什么,因为它需要一个山上的物体。(如果未找到返回-例如列表中未列出的山)

public IEnumerable GetMountainLoc(字符串mtloc)
{    
IEnumerable resultMts=
登山者
其中(x=>x.Grid\u参考子串(0,2)==mtloc)
.ToList();
返回结果;
}

在本例中,您的方法只是对类型为
IEnumerable
的列表应用一个过滤器,该列表保存在名为mountsList的变量中

因此,测试这一点的一种方法是对该方法返回的过滤列表进行断言。但是,为了做到这一点,您需要知道单元测试运行时变量mountsList的状态


那么这个变量是如何在包含类中设置的呢?它通过了吗?它是通过其他方式建造的吗?无论哪种情况,除非您在测试时知道该列表的状态,否则您将需要替换或以其他方式注入该列表的已知表示,以便您可以对其做出准确的断言

我想尝试找到这座山,如果找不到它,它将崩溃,所以我想避免这种情况。你知道如何对它进行单元测试吗?
public IEnumerable<Mountain> GetMountainLoc(string mtloc)
{    
  IEnumerable<Mountain> resultMts = 
       mountsList
       .Where(x => x.Grid_ref.Substring(0, 2) == mtloc)
       .ToList();
  return resultMts;    
}