断言 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列表?

断言 Web API 方法返回特定类型

您不是在检查类型,而是在检查列表的一个实例是否等于其他实例(可能是空列表的另一个实例)。这永远不会是真的。

如果要检查类型,请检查类型:

Assert.IsInstanceOfType(result, typeof(IList<FruitRM>));

注意:您似乎正在检查实现返回类型以外的另一个接口。我不会那样做。该方法应返回一个IEnumerable<Fruit>。如果它应该返回一个IList<Fruit>,请更改返回类型,而不是您的单元测试。