Закрытый метод доступа для метода не найден - PullRequest
7 голосов
/ 09 июня 2010

Я получаю эту ошибку при создании нового модульного теста в Visual Studio 2010 с помощью контекстного меню (щелкните правой кнопкой мыши имя метода -> «Создать модульные тесты»):

Private Accessor for methodName is not found. Please rebuild the containing project or run the Publicize.exe manually.

Метод общедоступный (проверено, что, применяя фильтр, чтобы не показывать непубличные методы в диалоговом окне «Сгенерировать модульные тесты».

Visual Studio автоматически создает какой-то файл .accessor. Нужно ли в этом что-то делать?

В чем еще может быть проблема?

РЕДАКТИРОВАТЬ (больше информации, которая может иметь отношение к делу)

  • Я пытаюсь протестировать некоторые классы внутри проекта веб-сайта, хотя они не выполняют каких-либо вещей, связанных с веб-страницей. Это просто старые классы C #.
  • Все мои имена классов доступны внутри класса модульного теста как ClassName_Accessor. И это заставляет компилятор жаловаться на неправильную сигнатуру метода.

Ответы [ 2 ]

5 голосов
/ 16 мая 2011

Я решил свою проблему с этим, я отключил папку Test Reference во время неудачного слияния с TFS.

Папка Test Reference находится в вашем тестовом проекте и будет содержать файл, названный в честь пространства имен источника с добавленным к нему «.accessor». Поскольку я отсоединил папку от своего проекта, я не увидел, что файл все еще там, поэтому выделил тестовый проект и нажал кнопку «Показать все файлы» в обозревателе решений. Когда я наконец нашел файл, я удалил его и заново сгенерировал частный метод доступа (щелкните правой кнопкой мыши в своем классе и выберите «Создать частный метод доступа»).

Итак, суть в том, что если Test Reference существует, но не связан с Project, вы не сможете восстановить частный метод доступа, а Visual Studio не сообщит вам о конфликте имен / блокировок файлов.

0 голосов
/ 09 июня 2010

«Метод доступа» - это класс, который работает как один из классов, участвующих в вашем тесте, но метод теста имеет доступ к своим закрытым и защищенным методам и полям.В частности, классы доступа используются для тестирования закрытых и защищенных методов.

Похоже, что есть проблема с аксессором, поэтому вы можете попробовать стереть и воссоздать его.Перестройте проект.Затем щелкните правой кнопкой мыши код и рядом с тем местом, где написано «Создать юнит-тесты», должен быть еще один вариант с надписью «Создать частный доступ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...