12

你知道我怎么能断言两个类型的字典

Dictionary<string,List<string>>

在我的单元测试项目中?

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

4

2 回答 2

11

使用 Linq:

Dictionary.All(e => AnotherDictionary.Contains(e))
于 2013-07-11T11:18:43.677 回答
11

可以给你一个很好的错误信息的方法之一:

public string ToAssertableString(IDictionary<string,List<string>> dictionary) {
    var pairStrings = dictionary.OrderBy(p => p.Key)
                                .Select(p => p.Key + ": " + string.Join(", ", p.Value));
    return string.Join("; ", pairStrings);
}

// ...
Assert.AreEqual(ToAssertableString(dictionary1), ToAssertableString(dictionary2));
于 2013-07-11T11:27:51.583 回答