如何将类修饰为代码覆盖率不可测试?

时间:2009-10-21 19:00:16

标签: c# visual-studio-2008 unit-testing code-coverage

背景:Visual Studio 2008,C#,。Net 3.5。

我有许多实用程序类,它们不是单元可测试的。这主要是因为它们与资源(例如数据库,文件等)进行交互。

有没有办法可以装饰这些类,以便Visual Studio代码覆盖引擎忽略它们,从而不降低代码覆盖百分比?

3 个答案:

答案 0 :(得分:27)

将项目升级到.NET 4时,您将获得ExcludeFromCodeCoverageAttribute Class

答案 1 :(得分:17)

this article中有关于如何使用[System.Diagnostics.DebuggerHidden][System.Diagnostics.DebuggerNonUserCode]属性从代码覆盖范围中排除方法的答案。

根据David的评论更新:

从.NET 4.0开始,有一个专用属性:[ExcludeFromCodeCoverage]

答案 2 :(得分:1)

您想要编写单元测试的一个原因是使代码松散耦合。如果您有兴趣学习如何编写松散耦合的代码(如果您不知道如何编写),则可以阅读this article

说您可以尝试使用TypeMock之类的工具来帮助您模拟对象,即使您没有使用Dependency Injection principle编写它们。

TypeMock是我使用的第一个模拟框架。我切换到Rhino Mocks,因为使用TypeMock,我没有足够的纪律来编写松散耦合的代码。