Показать сообщение отдельно
Старый 11.09.2013, 04:34
mcm вне форума Посмотреть профиль Отправить личное сообщение для mcm Найти все сообщения от mcm
  № 1  
Ответить с цитированием
mcm

Регистрация: Apr 2006
Сообщений: 28
По умолчанию Как можно тестировать internal классы?

Добрый день.
Имеем большой проект с более чем 200 классами, половина из которых определена как internal.
Классы аккуратно разложены в древовидном пакете, всё логично и понятно.

Задача: написать unit тесты для internal классов.
Условие: все тесты будут в другом древовидном пакете.
Окружение: FlashBuilder 4.7 и встроенный в него FlexUnit4, используемый для написания и выполнения тестов.

Задача решилась бы просто, если бы каждый test case был в том же пакете, что и internal класс, но это сильно захламит и без того большой проект, с которым работают люди, поэтому хотелось бы держать все тесты в отдельном древовидном пакете.

Второй вариант: сделать все internal классы как public, но это тоже не вариант для этого проекта. Хотя... есть ли какой нибудь способ автоматически менять internal на public при запуске теста?

Есть ли какие ещё варианты решения данной задачи? Поделитесь информацией как вы тестите internal классы.

Добавлено через 5 часов 11 минут
нагуглил решение, которое удовлетворяет задачу на 100%. Возможно, кому-нибудь будет интересно:

Создаём новый FlexProject чисто под тесты и просто навсего добавляем ссылку на наш проект (например, это можно сделать через свойства проекта в разделе Flex Build Path, выбираем закладку Source Path и добавляем наш проект). А дальше в новом проекте создаём аналогичную структуру, что и у большого проекта и размещаем в ней наши testCase, которые без особо труда теперь работают с internal классами.

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