有没有人知道断言NameValueCollection是否等价的好方法?目前我使用的是NUnit,但CollectionAssert.AreEquivalent()似乎只断言了键。而不是键和值。
我写了这小段代码来帮助我,但是如果有一些开箱即用的东西可以做同样的事情,那就太好了。
private static void AssertNameValueCollectionAreEquivalent(NameValueCollection expectedCollection, NameValueCollection collection)
{
// Will evaluate keys only
CollectionAssert.AreEquivalent(expectedCollection, collection);
foreach (string namevalue in collection)
{
Assert.AreEqual(expectedCollection[namevalue], collection[namevalue]);
}
}发布于 2012-06-12 14:29:58
将其转换为Dictionary并断言为:
CollectionAssert.AreEquivalent(
expectedCollection.AllKeys.ToDictionary(k => k, k => expectedCollection[k]),
collection.AllKeys.ToDictionary(k => k, k => collection[k])); 发布于 2012-06-12 14:10:44
我是用于NUnit的Fluent Assertions的粉丝。不仅语法更流畅和简洁,而且它们使许多断言更容易,这就是其中之一。
考虑一下:
var c = new NameValueCollection();
var c2 = new NameValueCollection();
c.Add("test1", "testvalue1");
c.Add("test2", "testvalue2");
c2.Add("test1", "testvalue1");
c2.Add("test2", "testvalue2");
c.Should().BeEquivalentTo(c2); // assertion succeedshttps://stackoverflow.com/questions/10991292
复制相似问题