断言 Web API 方法返回特定类型
本文关键字:类型 返回 方法 Web API 断言 | 更新日期: 2023-09-27 18:30:26
我有一个使用以下方法的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
列表?
您不是在检查类型,而是在检查列表的一个实例是否等于其他实例(可能是空列表的另一个实例)。这永远不会是真的。
如果要检查类型,请检查类型:
Assert.IsInstanceOfType(result, typeof(IList<FruitRM>));
注意:您似乎正在检查实现返回类型以外的另一个接口。我不会那样做。该方法应返回一个IEnumerable<Fruit>
。如果它应该返回一个IList<Fruit>
,请更改返回类型,而不是您的单元测试。