#java #testing #subclass #base-class
#java #тестирование #подкласс #базовый класс
Вопрос:
У меня есть набор тестов в классе A, а класс B расширяет этот класс. Можем ли мы в Java разрешить выполнение этих тестов только из класса B, а не из класса A?
Комментарии:
1. сделать
A
абстракцию2. Спасибо. Я протестировал, и это сработало. Почему это работает?
3. добавлено это как ответ с, надеюсь, понятным объяснением
Ответ №1:
Вы можете добиться этого, сделав класс A
абстрактным. Тестировщик не может создать экземпляр абстрактного класса, поэтому он не будет запускать тесты для A
. Но при проверке класса B
он обнаруживает методы из базового класса, и поскольку они допустимы для вызова из производного класса B
, он вызывает их.
Вы можете использовать это для определения методов тестирования в A
и производных классах B
и C
из A
. В производных классах вы можете предоставить разные настройки, например, подключения к другим службам, а затем использовать одни и те же тесты для обеих настроек.