Как оформить класс как непроверяемый для покрытия кода?

StackOverflow https://stackoverflow.com/questions/1602898

Вопрос

Фон: Visual Studio 2008, C #, .Net 3.5.

У меня есть ряд служебных классов, которые просто не поддаются модульному тестированию. Это происходит главным образом потому, что они взаимодействуют с ресурсами (например, базами данных, файлами и т. Д.).

Можно ли как-то украсить эти классы, чтобы механизм покрытия кода Visual Studio игнорировал их, не снижая при этом процент покрытия кода?

Это было полезно?

Решение

В этой статье есть ответ [Система. Diagnostics.DebuggerHidden] или [ System.Diagnostics.DebuggerNonUserCode] Атрибуты, исключающие методы из покрытия кода.

Обновление согласно комментарию Дэвида.

Начиная с .NET 4.0 для этого есть специальный атрибут: [ExcludeFromCodeCoverage]

Другие советы

Когда вы обновите свой проект до .NET 4, вы получите ExcludeFromCodeCoverageAttribute Class .

Одна из причин, по которой вы хотите написать модульные тесты, заключается в том, что ваш код слабо связан. Вы можете прочитать эту статью если вам интересно узнать, как писать слабосвязанный код (если вы не знаете, как).

Сказать, что вы можете попробовать использовать такие инструменты, как TypeMock , которые могут помочь вам высмеивать ваши объекты, даже если вы не пишите их, используя принцип внедрения зависимостей .

TypeMock был первым Mock Framework, который я использовал. Я переключаюсь на Rhino Mocks , потому что с TypeMock мне не нужно было быть достаточно дисциплинированным, чтобы написать слабосвязанный код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top