Как утверждать, что коллекция является IReadOnlyCollection с использованием NUnit - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть метод в 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. Как я могу утверждать, что expectedCollection является IReadOnlyCollection?

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Вы также можете использовать

...
Assert.IsInstanceOfType(expectedCollection, typeof(IReadOnlyCollection<Part>));
...

, что приводит к четкому сообщению о подтверждении того, что был найден неправильный тип.

2 голосов
/ 26 апреля 2020

Вы можете использовать is оператор для проверки типа

[Test]
public void TestWariorsShoudReturnReadOnlyCollectionOfWariors()
{
    var expectedCollection = MyPartsLib.GetAllParts;
    Assert.True(expectedCollection is IReadOnlyCollection<Part>);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...