首页 > 解决方案 > 如何使用 NUnit 断言该集合是 IReadOnlyCollection

问题描述

我有一个方法SomeClass,它返回IReadOnlyCollection。像这样的东西:

public calss SomeClass
{
   private readonly List<Part> _parts;

   ...

   public IReadOnlyCollection<Part> GetAllParts =>
            this._parts;
}

在我的单元测试中,我想断言返回的集合 ( expectedCollection) 是 IReadOnlyCollection。我尝试过反思:

[Test]
public void TestWariorsShoudReturnReadOnlyCollectionOfWariors()
{
    var expectedCollection = MyPartsLib.GetAllParts;

    Type type = expectedCollection.GetType();
    string acctualtypeName = type.Name;
    string expectedTypeName = "IReadOnlyCollection";
    Assert.AreEqual(expectedTypeName,acctualtypeName);
}

acctualtypeName执行后是List`1. 我怎么能断言那expectedCollectionIReadOnlyCollection

谢谢你的帮助。

标签: c#unit-testing

解决方案


您可以使用is运算符进行类型检查

[Test]
public void TestWariorsShoudReturnReadOnlyCollectionOfWariors()
{
    var expectedCollection = MyPartsLib.GetAllParts;
    Assert.True(expectedCollection is IReadOnlyCollection<Part>);
}

推荐阅读