我有一个Web API 2.0项目,其中包含以下方法:
public IEnumerable<Fruit> Get()
{
// get list of fruit
var listOfFruit = GetFruitsFromService();
// return list of fruit
return listOfFruit;
}
然后我就像这样进行单元测试:
[TestMethod]
public void Get_Should_Bring_Back_List_Of_Fruit()
{
// set
var controller = new FruitController();
var listOfFruits = new List<FruitRM>();
// act
var result = controller.Get() as IList<FruitRM>;
// assert
Assert.AreEqual(listOfFruits, result);
}
该测试失败了。如何测试Web API操作是否返回FruitRM
的列表?
答案 0 :(得分:2)
您没有检查类型,您正在检查列表的一个实例是否等于其他内容(可能另一个实例到空列表)。这永远不会成真。
如果要检查类型,请检查类型:
Assert.IsInstanceOfType(result, typeof(IList<FruitRM>));
注意:您似乎检查了实现除返回类型之外的其他接口。我不会这样做。该方法应返回IEnumerable<Fruit>
。如果它应该返回IList<Fruit>
,请更改返回类型,而不是单元测试。