Similar presentations:
Java. Лекция 9
1.
2.
Глава 11.1Тестирование кода
3.
Тестирование• В больших проектах изменение одной строчки кода
может повлечь неожиданные эффекты/баги
• Тесты помогают зафиксировать текущее поведение
программы, что увеличивает качество кода
• На ранних этапах написание тестов замедляет
разработку, на поздних - ускоряет
4.
Тестирование:термины• Мы не стремимся покрыть сегодня все возможные
темы про тесты.
• Расскажу за свой опыт, и наиболее частые кейсы
• Юнит тест – тест класса «в изоляции» от других классов
• Интеграционный тест – тест класса в связке с его
другими классами – зависимостями
• Mock – «фальшивый объект», подменяющий
настоящий.
• Assert - проверка
5.
Вопросы и ответы6.
Глава 11.2Рефлексия
7.
Информация о классах в рантайме• Когда JVM стартует программу, она загружает классы в
свою память
• Во время запуска, с эту информацию можно получать
• Более того, можно создавать классы, получать списки
полей, вызывать методы (даже приватные), менять
значения полей
• Это очень не рекомендуется использовать для бизнес
логики, однако хорошо подходит создания
фреймворков.
8.
Класс “Class”• Содержит всю мета-информацию о классе
• Имя
• Методы
• Поля
• Аннотации
• Модификаторы
9.
Класс “Class”10.
Аннотации• По большому счету аннотации не несут никакой
нагрузки, кроме некой информации для пользователя а
так же для рефлексивного кода
11.
Аннотации• У аннотации можно настроить область видимости:
• В исходном коде
• При компиляции
• В рантайме
• Так же у аннотации можно сказать, над чем ее можно ставить
• Поле
• Класс
• Метод
• Итд
• У аннотации могут быть параметры
12.
АннотацииХотим видеть
ее в рантайме
через
рефлекшен
Над чем можно
ставить
Параметр
13.
Поищем аннотацию в рантайме14.
15.
16.
Давайте писать свой ормфреймворк!!!17.
Вопросы и ответы18.
А давайте вызовем приватный метод?19.
Великолепный план, Коля, если я правильно понялНадежный, как швейцарские часы
20.
А давайте вызовем приватный метод?21.
А давайте вызовем приватный метод?Включаем
режим
«слабоумие и
отвага»
programming