BaseAuthFragment является абстрактным фрагментом и явно предназначен для использования в подклассах.Мне кажется ясным, что правильный тест будет включать подкласс, как вы сделали, но этот подкласс, вероятно, должен быть вложенным классом или родственным братом того же пакета , а не тестом.сам.Это даст вам некоторую обратную связь о том, потребуют ли будущие изменения BaseAuthFragment изменений в подклассах, потому что вы сами создали этот подкласс тестирования.
Предположительно, ваш тестируемый фрагмент может отслеживать, какие методы были вызваны (который вы могли бы в противном случае смотреть на шпионаже в Mockito) и выставлять геттеры для состояния, которое в противном случае было бы скрыто, или что вы ожидаете, что подклассы будут отслеживаться, или что вам в противном случае нужно было бы сделать вывод из порядка вызова метода.
ТакжеСоздавая фрагмент, предназначенный для тестирования (но это не ваш тест), вы можете свободно расширять видимость методов ограниченной видимости (protected
).Тем не менее, если вы будете придерживаться практики помещения ваших тестов в тот же пакет, что и тестируемый класс (возможно, в другую исходную папку), вы все равно сможете получить доступ к этим методам без изменения видимости: protected
менее защищен, чемуровень видимости частного пакета по умолчанию.