[英]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);
}
但是執行后的acctualtypeName
是List`1
。 我如何斷言expectedCollection
是IReadOnlyCollection
?
謝謝你的幫助。
您可以使用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.