Поделиться через


Модульные тесты для частных, внутренних и дружественных методов

Обычно методы, которые помечаются как частные, внутренние и дружественные, не видимы за пределами класса, содержащего эти методы. Однако средства Visual Studio обеспечивают к ним доступ для модульных тестов, хотя файл модульного теста — это отдельный класс.

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

Примечание

Инструкции по созданию модульных тестов см. в разделе Создание и запуск модульных тестов для существующего кода.

Примечание

Использование методов доступа в Visual Studio 2010 не рекомендуется. Они могут не войти в будущие версии Visual Studio.

Частные методы

При создании модульного теста для частного метода к тестовому проекту добавляется папка Test References, и к этой папке добавляется метод доступа. Кроме того, на метод доступа ссылается логика метода модульного теста.

Form1_Accessor target = new Form1_Accessor(); // TODO: Initialize to an appropriate value
Dim target As Form1_Accessor = New Form1_Accessor() ' TODO: Initialize to an appropriate value

Этот метод доступа позволяет модульному тесту вызывать частные методы в тестируемом коде.

Можно вручную создать метод доступа или создать повторно удаленный метод доступа. Для этого щелкните правой кнопкой мыши тестируемый код, наведите указатель на команду Создать частный метод доступа и выберите тестовый проект, который требует метод доступа.

Внутренние или дружественные методы

Во время создания модульного теста для внутреннего метода в С# или для дружественного метода в Microsoft Visual Basic появляется диалоговое окно, которое позволяет выбрать внутренние методы с возможностью доступа для частного метода доступа или с атрибутом InternalsVisibleToAttribute.

Примечание

Диалоговое окно может не отображаться, если к проекту уже был добавлен этот атрибут.

Если вы выбираете доступ к внутренним методам через атрибут InternalsVisibleToAttribute, данный атрибут добавляется к файлу AssemblyInfo.cs. Атрибут делает внутренние методы в тестируемом коде доступными для тестового проекта. Новый атрибут добавляется для каждого тестового проекта, для которого выбран этот параметр.

Если вы выбираете доступ к внутренним методам через частный метод доступа, поведение остается таким же, как это было описано в данной статье для частных методов: к тестовому проекту добавляется папка Test References, метод доступа добавляется к папке, и на метод доступа ссылается логика метода модульного теста. В данном случае частный метод доступа обеспечивает доступ к тестируемым внутренним и частным методам.

Если вы решили добавить к проекту атрибут InternalsVisibleToAttribute, все равно можно создавать модульные тесты для внутренних методов и обеспечивать к ним доступ с помощью частного метода доступа. Однако это необходимо делать во время создания модульного теста. В диалоговом окне Создать модульные тесты нажмите кнопку Параметры. В диалоговом окне Параметры создания тестов снимите флажок Учитывать атрибут InternalsVisibleTo.

См. также

Основные понятия

Составляющие модульного теста

Модульные тесты и C++

Модульные тесты для универсальных методов