【问题标题】:Is there a library of default unit tests for .NET interface implementations?是否有 .NET 接口实现的默认单元测试库?
【发布时间】:2011-07-14 14:34:48
【问题描述】:

例如,我有一个实现 IDictionary 的类型,我需要测试覆盖率以确保它正确执行。我只是想知道在任何地方是否有针对此类事物的标准、可重用测试的存储库;如果没有,我可能会创建一个。

【问题讨论】:

  • 我不知道。如果您确实创建了一个,请编辑此问题的链接,或者最好在 Google+ 上联系我,我将提供一些测试。可能是讨厌的,繁琐的:)
  • 我不确定我是否理解您要执行的操作。您有一个 IDictionary 的实现,并且想要测试该实现是否按照它应该做的那样做?如果是这种情况,除了为该实现编写一堆单元测试之外,我没有看到任何其他方法。如果您能找到另一个 IDictionary 测试,它通过了您的实现,那么您也可以使用标准实现,而不是编写自己的 :)
  • 如果没有套装可用,您可以使用 Pex (research.microsoft.com/en-us/projects/pex) 开始。
  • Thomas:许多类型可以实现 IDictionary;例如,BCL 中的 ExpandoObject 就可以。这些实现可能在内部都不同(例如 ExpandoObject 不使用哈希码),但通过该接口使用时它们的行为应该是一致的。这就是接口的意义所在。

标签: .net unit-testing


【解决方案1】:

我怀疑是否存在公开可用的 .net,但 Mono 项目可能是一个不错的起点?

他们是在测试接口的“契约”还是具体的实现,我不确定,但肯定有针对 Dictionary 类的测试:

https://github.com/mono/mono/blob/master/mcs/class/corlib/Test/System.Collections.Generic/DictionaryTest.cs

【讨论】:

  • -1:如果 Mono 确实有这样的测试,那么这是一个答案。如果 Mono 可能有测试,那么它不是。
【解决方案2】:

我找不到任何专门满足这个需求的东西,所以我做了。我创建了一个 Github 存储库并向其中添加了我的 IDictionary 测试;希望人们会分叉并贡献更多的测试。

https://github.com/markrendle/InterfaceTests.Net

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2014-05-15
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多