为什么或如何将 NUnit 方法与 ICollection结合使用?

发布于 2024-08-12 10:14:09 字数 475 浏览 4 评论 0原文

某些 NUnit 的 Assert 方法已重载以使用 ICollection,但不使用 ICollection,因此您无法使用它们。

这附近还有吗?哎呀,我是不是做了什么蠢事?

我不得不重新使用 Assert.AreEqual 而不是专门的方法,这让我的测试变得丑陋。

有什么建议吗?

编辑:

感谢您的回复。 NUnit 的 That 方法看起来很有趣,所以我稍后会研究它。

Mark 正确地提到了这一点,但是 NUnit 集合断言 非常出色。我最近在一些新测试中使用了它们,发现它们非常适合使用。

Some of NUnit's Assert methods are overloaded to use ICollection but not ICollection<T> and thus you can't use them.

Is there anyway around this? Heck, am I doing something stupid?

I'm having to drop back to using Assert.AreEqual rather than specialised methods and its making my tests ugly.

Any advice?

Edit:

Thanks for the responses. The That method of NUnit seems interesting so I'll look into it at a later date.

Mark correctly mentioned this, but NUnit Collection Asserts are excellent. I've recently used them on some new tests and found them excellent to work with.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

玩物 2024-08-19 10:14:09

我不知道这是否是您正在寻找的,但是对于通用集合而不是使用:

Assert.Contains(member, list);

我使用:

Assert.That(list.Contains(member));

我发现它几乎具有可读性。

I don't know if this is what you're looking for, but for generic collections instead of using:

Assert.Contains(member, list);

I use:

Assert.That(list.Contains(member));

which I find almost as readable.

向日葵 2024-08-19 10:14:09

ICollectionICollection 是不同的合约 - 一个不继承另一个。

http://msdn.microsoft.com/en-us/library /system.collections.icollection_members.aspx
http://msdn.microsoft.com/en-us/library/y2fx0ty0.aspx

如果您有一个通用集合,您可以对其调用 ToList() 并获取 List,这恰好实现了非通用 ICollection 也是如此。然后在 NUnit Assert 方法中使用该 List。

ICollection and ICollection<T> are different contracts - one does not inherit the other.

http://msdn.microsoft.com/en-us/library/system.collections.icollection_members.aspx
http://msdn.microsoft.com/en-us/library/y2fx0ty0.aspx

If you have a generic collection you can call ToList() on it and get a List<T>, which happens to implement the non-generic ICollection as well. Then use that List in the NUnit Assert method.

深府石板幽径 2024-08-19 10:14:09

有一组 CollectionAssert,或者您可以从 AssertHelper 继承您的测试并使用类似的语法

Expect(actual, Is.EquivalentTo(expected));

查看文档应该为您提供适用于集合的约束的语法。

这是一个链接(这是版本2.5.2)

NB Expect 只是 Assert.That 的简写...

There are a set of CollectionAsserts, or you could inherit your test from AssertHelper and use syntax like

Expect(actual, Is.EquivalentTo(expected));

A look at the documentation should give you the syntax for the constraints that apply to collections.

Here's a link (this is version 2.5.2)

N.B. Expect is just shorthand for Assert.That...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文