Как украсить класс как неустойчивый для покрытия кода?
Фон: Visual Studio 2008, С#,.Net 3.5.
У меня есть ряд классов полезности, которые просто не проверяются на единицу. Это происходит главным образом потому, что они взаимодействуют с ресурсами (например, с базами данных, файлами и т.д.).
Есть ли способ украсить эти классы, чтобы движок Visual Studio Code Coverage игнорировал их, чтобы не уменьшать процент покрытия кода?
Ответы
Ответ 1
В [System.Diagnostics.DebuggerHidden] или [System.Diagnostics.DebuggerNonUserCode] Атрибуты для исключения методов из охвата кода.
Обновление согласно комментариям Дэвида:
В .NET 4.0 для этого есть выделенный атрибут: [ExcludeFromCodeCoverage]
Ответ 2
При обновлении проекта до .NET 4 вы получите класс ExcludeFromCodeCoverageAttribute.
Ответ 3
Одна из причин, по которой вы хотите написать модульные тесты, заключается в том, чтобы сделать ваш код слабо связанным. Вы можете прочитать эту статью, если вам интересно узнать, как писать свободно связанный код (в случае, если вы не знаете, как это сделать).
Говоря, что вы можете попробовать использовать такие инструменты, как TypeMock, которые могут помочь вам издеваться над вашими объектами, даже если вы их не пишете используя Принцип впрыскивания зависимостей.
TypeMock был первой базой Mock Framework, которую я использовал. Я переключаюсь на Rhino Mocks, потому что с TypeMock мне не нужно было достаточно дисциплинировать, чтобы писать свободно связанный код.