c# - 如何使用 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
. 我怎么能断言那expectedCollection
是IReadOnlyCollection
?
谢谢你的帮助。
解决方案
您可以使用is
运算符进行类型检查
[Test]
public void TestWariorsShoudReturnReadOnlyCollectionOfWariors()
{
var expectedCollection = MyPartsLib.GetAllParts;
Assert.True(expectedCollection is IReadOnlyCollection<Part>);
}
推荐阅读
- python - 访问一个类的对象以查看它是否存在于另一个类中
- javascript - 防止 history.replaceState 附加到 url
- c# - 为什么我的内存分配方法会抛出 Stack Overflow?
- c# - 简单的聊天应用程序在尝试托管 C#.NET 时崩溃
- c - 以正确的方式从 Object Dump 中获取 Shellcode
- shopify - 以集合为目标 - 液体
- c++ - 将 unordered_map 与 Catch2 谓词一起使用时类型不匹配
- javascript - 固定菜单不起作用(菜单不“粘”)
- javascript - 预检响应在 axios 中没有 HTTP ok 状态
- angular - Angular 6选择默认值不起作用