簡體   English   中英

如何使用 NUnit 斷言該集合是 IReadOnlyCollection

[英]How to assert that collection is IReadOnlyCollection using NUnit

我在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);
}

但是執行后的acctualtypeNameList`1 我如何斷言expectedCollectionIReadOnlyCollection

謝謝你的幫助。

您可以使用is運算符進行類型檢查

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

你也可以使用

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

這會產生一個明確的斷言消息,指出檢索到了錯誤的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM