Практическое руководство. Тестирование закрытых методов
Обновлен: Ноябрь 2007
С помощью модульных тестов можно тестировать не только открытые, но и закрытые методы. Как и для открытых методов, модульные тесты для закрытых методов создаются автоматически при формировании тестов из кода, который нужно протестировать.
Можно вручную создавать код модульных тестов для тестирования любых методов, но для закрытых методов это сложнее, чем для открытых, потому что требуется лучше понимать особенности отражения. Вследствие этого удобнее автоматически создавать тесты для закрытых методов, а не писать их код вручную.
При создании модульного теста для закрытого метода в Visual Studio создается закрытый метод доступа. Закрытый метод доступа представляет собой сборку, посредством которой тест получает доступ к закрытому методу извне класса этого метода. Дополнительные сведения см. в разделе Использование закрытых методов доступа.
Примечание. |
---|
Помимо закрытых методов можно использовать закрытый метод доступа для тестирования закрытых свойств и полей. Однако нельзя использовать закрытый метод доступа для тестирования закрытых версий событий, делегатов, анонимных методов и членов с атрибутом CompilerGeneratedAttribute. |
Атрибут InternalsVisibleTo или закрытый метод доступа: что выбрать?
Сборку закрытого метода доступа можно использовать для доступа к закрытым и внутренним членам. Если в тестируемом коде есть внутренние члены, но нет закрытых, лучше использовать атрибут InternalVisibleTo и не создавать сборку закрытого метода доступа. Если же в коде есть и закрытые, и внутренние члены, которые нужно протестировать, используйте закрытый метод доступа, поскольку он обеспечивает доступ к обоим типам членов. Дополнительные сведения см. в разделе Использование закрытых методов доступа.
Для создания и модульного теста для закрытого метода
Откройте файл исходного кода, содержащий закрытый метод.
Щелкните закрытый метод правой кнопкой мыши и выберите команду Создать модульные тесты.
Откроется диалоговое окно Создать модульные тесты. В отображаемой древовидной структуре установлен флажок только для закрытого метода.
(Необязательно). В диалоговом окне Создание модульных тестов можно изменить Выходной проект. Также можно щелкнуть Параметры, чтобы изменить способ создания модульных тестов.
Нажмите кнопку ОК.
При этом создается код для доступа к закрытому методу, выполняется построение тестового проекта, а также создается или обновляется сборка закрытого метода доступа.
Если до этого этапа в тестовом проекте не было модульных тестов, создается файл исходного кода для этих тестов. Файл, содержащий модульные тесты, как и файл, содержащий закрытые методы доступа, отображается в тестовом проекте в обозревателе решений.
Откройте файл, содержащий модульные тесты, и прокрутите до теста для закрытого метода. Найдите операторы с комментарием // TODO: и заполните их в соответствии с указаниями в комментариях. Это поможет повысить точность результатов теста. Дополнительные сведения см. в разделе Практическое руководство. Создание модульного теста.
Модульный тест для закрытого метода готов к запуску. Дополнительные сведения см. в разделе Практическое руководство. Выполнение выбранных тестов.
См. также
Задачи
Практическое руководство. Создание модульного теста
Пошаговое руководство. Создание и запуск модульных тестов
Основные понятия
Использование закрытых методов доступа
Использование программы Publicize для создания закрытых методов доступа
Установка атрибута InternalsVisibleTo