Skip to content
This repository has been archived by the owner on Apr 9, 2020. It is now read-only.
Alex Ivanov edited this page May 22, 2019 · 20 revisions

Задания на лабораторные работы по курсу Разработка ПО для Java и RDF4J

1. Основы IDE

  1. Установить Eclipse с помощью Eclipse Installer
  2. Изучить работу с Java кодом в среде Eclipse

2. Простейшие компоненты RDF4J

3. JUnit тесты

  1. Изучить туториал
    1. Прочитать руководство, прокликать раздел 8 в туториале https://www.vogella.com/tutorials/JUnit/article.html
    2. В результате прокликивания: создать тестируемый класс, создать JUnit 4 тест, запустить и поиследовать работу
  2. Сделать с нуля юнит-тест поведения движка SHACL валидации RDF данных Склонировать (или спулить) репозиторий https://github.com/agentlab/rdf-scheme-editor-server.git
    1. Импортировать как Maven проект
    2. Добавить зависимости JUnit в pom.xml
    3. Проверить, что в зависимостях rdf4j версии 2.5.0
    4. Создать пустой JUnit тест и запустить его в Eclipse IDE
    5. Создать два юнит-теста (на корректные и некорректные добавляемые данные) по коду примера https://github.com/eclipse/rdf4j-doc/blob/master/doc/programming/05-custom-sails.adoc#validation-with-shacl
  3. Настроить JUnit на работу с Maven
    1. Настроить сборку и прогон теста с помощью maven.
    2. Убедиться, что всеми зависимостями управляет Maven, что ничего не настроено в Eclipse в обход Maven
    3. Запустить сборку проекта с прогоном JUnit тестов и убедиться, что тесты прогоняются
    4. Внести ошибку в юнит-тест (чтобы он выполнялся неуспешно) и посмотреть, что будет при запуске прогона JUnit теста в maven из консоли

4. Тестирование взаимодействующих компонентов движка RDF4J с использованием Mockito. Производительность: профилирование и тесты

  1. Подключить Mockito версии 2.x к проекту в виде Maven-зависимости.
  2. Подключить аннотации Mockito https://www.baeldung.com/mockito-annotations
  3. Ознакомиться с документацией на rdf4j http://docs.rdf4j.org/sail#_notifyingsail_and_abstractnotifyingsail
  4. Реализовать для задания из п.3 с помощью Mockito mock-объект типа SailChangedListener и подключить его к тестируемому RDF репозиторию. Проверить, что метод sailChanged() вызывается хотя бы раз в тесте с данными, проходящими валидацию и не вызывается ни разу в тесте с некорректными данными.
  5. Реализовать ArgumentCaptor типа SailChangedEvent для метода sailChanged() mock-объекта. Проверить, что передаваемое в метод sailChanged() mock-объекта событие возвращает true при вызове statementsAdded().

5. Серверные модули, обрабатывающие запросы клиентов

6. Приложение из плагинов. Динамическая модульность OSGi

  1. Установка
  2. Скачать Apache Karaf и запустить его в отдельном окне консоли.
  3. Склонировать репозиторий agentlab/karaf-rest-example
  4. Открыть отдельную консоль (или открыть Eclipse), собрать в консоли (или Eclipse) склоненный репозиторий с помощью Maven и в консоли запущенного Karaf задеплоить собранные артефакты в соответствии с инструкцией agentlab/karaf-rest-example/README.md
  5. Проверить, что по ссылке http://localhost:8181 выдается справка о создании веб-сервиса, а по ссылке http://localhost:8181/booking веб-сервис возвращает пустой список.
  6. Настроить Karaf на мониторинг локального Maven-репозитория с помощью команды bundle:watch *
  7. Исследовать работу веб-сервиса в Karaf
  8. Добавить в компонент метод-активатор, который добавляет тестовые данные в bookings Документация на аннотации компонентов OSGi

7. Тестирование взаимодействующих компонентов

8. Тестирование динамических модулей и системное тестирование

Clone this wiki locally