2014-10-28 2 views
1

У меня есть проект в Android Studio с основным именем пакета com.game.android Внутри этого пакета у меня есть класс GameMainActivity и еще один пакет (с именем «com.game» .android.tests "), где мои тесты принадлежат. Внутри тестового пакета есть GameMainActivityTest, который расширяет ActivityInstrumentationTestCase2. Я хотел бы протестировать защищенные методы в классе GameMainActivity, и у меня возникли проблемы с просмотром методов.Не удается проверить защищенные методы в android (Android studio)

Насколько я знаю, именно так я должен настроить тестирование в среде Android и, возможно, я мог бы что-то испортить. Я новичок в тестировании на Android, поэтому на данный момент я почти не знаю.

ответ

1

Это просто вещь о сфере видимости. Тестовые классы настроены очень хорошо, но «защищенный» модифицированный делает эти методы недоступными из классов, не принадлежащих «come.game.andriod».

Если вы хотите протестировать код в этих методах напрямую, вам нужно либо сделать их общедоступными, либо создать новые методы, которые каким-либо образом завершают или вызывают защищенные методы. Вы также можете подклассифицировать свои исходные классы в тесте.

+0

Это неверно. 'protected' делает их доступными для подклассов. Если вы не указали спецификатор области, это «защищенный пакет», что делает их доступными для чего-либо еще в одном пакете. Довольно распространенная практика заключается в том, чтобы сделать методы доступными для тестирования, защищенные пакетом, и обеспечить, чтобы классы тестов были в одном пакете. –

+0

Правда, я не точно описал «защищенный». Я предполагаю, что я просто пытаюсь передать тот факт, что его проблема в том, что методы недоступны извне этого пакета. – slambeth

+0

В этом проблема. Дело в том, что я не могу запускать тесты из других источников. Это рекомендуемая настройка, и она не работает, если только я не проверяю общедоступные методы (что глупо). – TomTaila

Смежные вопросы