首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >断言NameValueCollection是否等价

断言NameValueCollection是否等价
EN

Stack Overflow用户
提问于 2012-06-12 14:03:37
回答 2查看 764关注 0票数 3

有没有人知道断言NameValueCollection是否等价的好方法?目前我使用的是NUnit,但CollectionAssert.AreEquivalent()似乎只断言了键。而不是键和值。

我写了这小段代码来帮助我,但是如果有一些开箱即用的东西可以做同样的事情,那就太好了。

代码语言:javascript
复制
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]);
   }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-12 14:29:58

将其转换为Dictionary并断言为:

代码语言:javascript
复制
CollectionAssert.AreEquivalent(
    expectedCollection.AllKeys.ToDictionary(k => k, k => expectedCollection[k]),
    collection.AllKeys.ToDictionary(k => k, k => collection[k])); 
票数 2
EN

Stack Overflow用户

发布于 2012-06-12 14:10:44

我是用于NUnit的Fluent Assertions的粉丝。不仅语法更流畅和简洁,而且它们使许多断言更容易,这就是其中之一。

考虑一下:

代码语言:javascript
复制
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 succeeds
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10991292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档