【发布时间】:2010-03-13 19:51:31
【问题描述】:
我从 Java 迁移到 C#,所以我想知道如何在 C# 中进行单元测试。我记得使用 JUnit 来测试我的 Java 应用程序。如何在 C# 中进行单元测试?使用默认单元测试库在 C# 中进行单元测试有哪些好的资源?我真的不需要端口。一个好的资源应该是一个很好的 PDF 文件、文章,或者更好的是一个视频!
【问题讨论】:
标签: c# visual-studio unit-testing
我从 Java 迁移到 C#,所以我想知道如何在 C# 中进行单元测试。我记得使用 JUnit 来测试我的 Java 应用程序。如何在 C# 中进行单元测试?使用默认单元测试库在 C# 中进行单元测试有哪些好的资源?我真的不需要端口。一个好的资源应该是一个很好的 PDF 文件、文章,或者更好的是一个视频!
【问题讨论】:
标签: c# visual-studio unit-testing
NUnit 实际上是 JUnit 到 .NET 领域的惯用端口。 Visual Studio 中还内置了一个单元测试框架,但由于您熟悉 JUnit,而且 NUnit 是免费的,因此我建议您这样做。
对于模拟和存根,我喜欢Rhino Mocks。
最后,Roy Osherove 有一本很好的书 The Art of Unit Testing,它很好地讨论了一般的单元测试,但也会为您指出其他工具和资源。
【讨论】:
您没有提及您使用的是哪个版本的 VS,但如果是 VS 2010 RC,请尝试 Pex and Moles Visual Studio 2010 Powertools...
"Pex 自动生成具有高代码覆盖率的测试套件。直接从 Visual Studio 代码编辑器中,Pex 找到您方法的有趣输入输出值,您可以将其保存为小型测试套件高代码覆盖率。Microsoft Pex 是用于测试 .NET Framework 应用程序的 Visual Studio 插件。"
"Moles 允许用委托替换任何 .NET 方法。Moles 通过绕道和存根提供隔离来支持单元测试。Moles 框架由 Pex 提供,或者可以通过以下方式安装本身作为 Microsoft Visual Studio 插件。”
视频:
【讨论】:
我喜欢使用 MSTest,因为它与 Visual Studio(大多数版本)捆绑在一起。
还可以查看 NUnit 和 xUnit。
对于测试运行器,我喜欢使用 ReSharper。
【讨论】:
对于模拟对象,另一个有趣的库是Moq。它有一些不错的特性,特别是如果你要测试 lambda 表达式和所有 LINQ 的东西(它对此有一些支持)。
至于单元测试,我使用 NUnit,但强烈建议阅读 Introduction to Test Driven Design (TDD)。
【讨论】:
什么,不喜欢MbUnit?
【讨论】:
试试NUnit。您还可以查看 Visual Studio 2008 或 Visual Studio 2010 中的单元测试项目。
【讨论】: