Модульное тестирование приватных функций в Silverlight - PullRequest
2 голосов
/ 02 июля 2010

Кто-нибудь знает, как проверить частные функции в проекте Silverlight Unit Test ? Похоже, что объекты * _ Accessor недоступны, как в обычном модульном тестировании.

Ответы [ 4 ]

6 голосов
/ 02 июля 2010

Вы не можете выполнить юнит-тестирование частных функций. У вас есть 3 варианта:

  1. Вы можете сделать эти функции «публичными» и протестировать их,
  2. Вы делаете их «внутренними» и добавляете атрибут InternalsVisibleTo в файл сборки.
  3. Вы создаете открытый или внутренний метод, который вызывает ваши закрытые методы, и тестируете их.

Юнит-тестирование обычно проводится для проверки интерфейса классов с внешним миром. Модульное тестирование закрытых методов не рекомендуется.

1 голос
/ 03 июля 2010

Ответ @sbenderli правильный.

Но у меня есть мои оговорки о том, чтобы сделать частные методы внутренними только для их модульного тестирования .Сделать метод внутренним - это все равно, что сделать его открытым для этой сборки.

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

0 голосов
/ 08 марта 2011

Фреймворк с открытым исходным кодом Impromptu-Interface может предоставлять доступ к закрытым членам с помощью DLR. Модульный тест для этой функции проходит на Silverlight.

0 голосов
/ 16 июля 2010

Если вам действительно нужно тестировать приватные методы, значит, ваша архитектура каким-то образом повреждена.

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