如何在c#nunit中断言字典?

如何在c#nunit中断言字典?,c#,nunit,moq,C#,Nunit,Moq,你知道我如何断言两个类型的字典吗 Dictionary<string,MyClass> 字典<string,MyClass> 在我的单元测试项目中 我尝试使用CollectionsAssert,但它对我不起作用。我想它需要简单的字典作为参数(例如字典)。我想我的问题来自字典的第二个参数。你知道我如何断言这两个字典吗?你没有说你想断言这两个字典的什么,但我假设他们是平等的 从NUnit3.0开始,您可以断言两个字典是相等的,如下所示 Assert.That(dictionary1

你知道我如何断言两个类型的字典吗

Dictionary<string,MyClass> 字典<string,MyClass> 在我的单元测试项目中


我尝试使用CollectionsAssert,但它对我不起作用。我想它需要简单的字典作为参数(例如字典)。我想我的问题来自字典的第二个参数。你知道我如何断言这两个字典吗?

你没有说你想断言这两个字典的什么,但我假设他们是平等的

从NUnit3.0开始,您可以断言两个字典是相等的,如下所示


Assert.That(dictionary1,Is.EqualTo(dictionary2));

此断言检查 1.词典包含相同数量的条目。 2.字典包含完全相同的键。 3.确保每个键的值相等

第三步取决于类中包含的平等定义(如果有)。如果没有为类重载相等,那么当然会使用对象相等


如果这是不够的信息,请编辑您的问题,不幸的是,这是相当模糊。除非您指定要对两个对象断言什么,否则说您要“断言”这两个对象没有任何意义。

我不知道有任何特殊的断言用于此,也许您必须为您的
MyClass
实现自己的比较器,并使用
assert.AreEqual
我认为没有现成的方法。我通常用于更复杂的断言。它可以检测您的测试框架,并抛出那些特定的断言异常,因此很容易集成到现有项目中。感谢您的回复。我想断言dictionary的键和值。我还想断言dictionary的MyClass对象值。我给出的示例代码断言键是相同的,对应的值是相等的。。。请参见编辑。