Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8111

.pdf
Скачиваний:
0
Добавлен:
23.11.2023
Размер:
1.38 Mб
Скачать

Теперь вы готовы начать работать над классом машины.

текст «HelloWolrd!».

ЛАБОРАТОРНАЯ РАБОТА № 3

Тема: Построение и запуск приложения Java.

Цель работы: Написать первый вариант кода машинки-робота для участия в соревнованиях RallyCar.

В этой лабораторной вы реализуете класс RallyCar, который вы будете использовать для гонок против других машин. Сама игра предоставляет основу, которую вы будете расширять добавлением деталей в создаваемые машины.

Инструкции к лабораторной работе содержат изменения наиболее важных подробностей из документации к игре. Для получения полной документации обращайтесь к руководству в каталоге плагина CodeRally (..\eclipse\plugins\com.ibm.coderally_1.1.1\docs\manual.html).

Документация к игре доступна также из меню справки Eclipse, т.е. из меню HelpContents. Существует также некоторое количество правил, связанных с классом машины. Здесь приведены наиболее важные из них:

вам не разрешено создавать конструкторы для ваших машин или использовать блоки статической инициализации,

ваши машины не должны создавать любые потоки (threads).

разрешается использовать System.out.println() для отображения информации в консоли из вашего класса машины,

операции по перемещению класса вашей машины ограничены по времени,

запуск имитации в режиме отладки Java вызывает ограничения движений и времени инициализации для автоматического выключения.

Шаг 1: Определение класса RallyCar

Создайте в EclipseJava-проект CodeRally. Содержимое проекта уже существует в файловой системе там, где вы его создали при выполнении предыдущей лабораторной работы. Как только вы создадите реальный проект Eclipse, реализация по умолчанию (начальная реализация) из структуры каталогов будет помещена в среду Eclipse. Эта реализация по умолчанию включает реализацию класса RallyCar. Класс определен в defaultpackage.

В классе машины существует четыре модуля-заглушки, которые вы должны завершить, чтобы идентифицировать свою машину:

getSchoolName()

getName()

getColor()

initialize()

Не выполняйте никаких вычислений кроме возвращения значений в первых трех методах. Пожалуйста, посмотрите документацию к CodeRally (..\eclipse\plugins\com.ibm.coderally_1.1.1\docs\manual.html) чтобы понять, что вы именно должны возвращать и делать в этих методах.

Шаг 2: Запрограммируйте метод move()

Реализуйте метод move() для вашей машины. Пример методов перемещения и особенностей, которые вы должны реализовать смотрите в документации к CodeRally.

Шаг 3: Запустите машину

Как только вы завершили кодирование метода move() , вы можете запустить вашу машину локально против нескольких машин из примера. ЩелкнитекнопкуRun the private track

напанели Code Rally.

Начнется игра, и вас попросят выбрать соперника для гонок. Нижеприведеныпримерымашин.

После выбора соперника для игры, вы увидите как ваша машина выступает против других. Вы можете сделать изменения в вашей машине для улучшения ее производительности и после этого запустить игру снова.

ЛАБОРАТОРНАЯ РАБОТА № 4

Тема: Использование JUnit.

Цель работы: Изучить процесс тестирования с использованием JUnit.

Вэтой лабораторной работе вы напишите несколько тестов для элементов программы (unit-тестов) для тестирования класса машины, который вы создали в предыдущей работе. Тестирование элементов обычно выполняется на уровне класса. JUnit (инфраструктура тестирования OpenSource), являющаяся частью платформы Eclipse, в основном используется для тестирования элементов. Платформа Eclipse также предоставляет "мастеров" для создания unit-тестов.

Втечение этой лабораторной работы вы создадите несколько тест-кейсов (testcase), также тест-свит (testsuite), который группирует вместе тест-кейсы и позволяет тестирование на более высоком уровне, т.е. позволяет одновременное тестирование многочисленных тестов (testunits).

Шаг 1: Выполнение настроек для лабораторной работы

Тест-кейсы обычно располагаются в пакете отдельно от кода. Для тренировочных целей Вы определите тестовые классы в том же самом пакете, что и класс RallyCar

(defaultpackage, asCodeRallylooksthereforacarclass), но помните, что в действительности Вы бы, вероятно, разделили эти классы в различные пакеты.

Шаг 2: Написание тест-кейсов

Создайте новый тест-кейс для класса RallyCar, определенного Вами в предыдущей лабораторной. Сделайте это, выбрав defaultpackage и вызвав контекстное меню New - >JUnitTestCase.

Назовите тест-кейс RallyCarTest. Определите метод setUp() для класса, а также выберите метод getName() для тестирования в "мастерах".

Так как Вы тестируете поведение класса RallyCar в этом тест-кейсе, то Вам надо иметь ссылку на экземпляр этого класса. Определите поле car типа RallyCar (класс, который Вы построили в предыдущей лабораторной) в классе тест-кейса.

Вметоде setUp() тестового класса назначьте новый экземпляр класса RallyCar полю машины. Метод запустится, когда запустится тест-кейс.

Вметоде тест-кейса testGetName() напишите проверочное условие для тестирования названия машины. Вы можете написать assertEquals(car.getName(),"xxx"); где

“xxx” – это имя Вашей машины.

Шаг 3: Запуск тест-кейса

Выберите тест-кейс класс в Среде разработки и вызовите контекстное меню Run ->RunAs - >JUnitTest. Тест запустится, и его результаты будут отображены в Представлении JUnit.

Измените метод testGetName() в тестовом классе, указав неправильное название машины в проверочном условии. Запустите тест-кейс снова и в представлении JUnit должна появиться неудачная трассировка.

Шаг 4: Написание другого тест-кейса

Напишите другой тест-кейс, который будет тестировать другой метод класса RallyCar. Вы создадите другой тестовый класс для тренировочных целей. В реальности, Вы, вероятно, будете тестировать все поведение одного класса в единственном тест-кейс классе, т.е. у Вас будет один тестовый класс на каждый реальный класс (domainclass). Повторите установки из предыдущего тест-кейса для нового (создание поля и инициализацию в методе setUp() ). В тестовом классе напишите код для тестирования метода getSchoolName() класса RallyCar. Запустите тестовый класс.

Шаг 5: Написание и запуск тест-свита

Напишите тест-свит, который будет содержать оба предварительно определенных тест-кейс класса. Тест-свит создают с помощью меню File ->New ->Other… и выбора JUnit и TestSuite из мастера.

Запустите класс тест-свит так же, как Вы запускали классы тест-кейс. Оба, содержащихся в нем тест-кейс класса запустятся, и все результаты будут отображены в представлении JUnitresult.

ЛАБОРАТОРНАЯ РАБОТА № 5

Тема: Отладка в Eclipse.

Цель работы: Изучить процесс отладки программного кода средсвамиEclipse.

В этой лабораторной вы будете все больше узнавать об инструментах разработки Java в Eclipse (EclipseJavaDevelopmentTools), по мере того, как будете использовать некоторые из самых распространенных инструментов, в частности Debugger, Scrapbook и Inspector. Эти инструменты очень полезны при разработкеJava-кода. В этой лабораторной Вы пройдете по шагам через выполнение Java-кода, который будет использован позже в лабораторных для чтения результатов запущенной игры CodeRally. Этот код будет предоставлен Вам для использования в этой лабораторной, а также Вы выполните код из Scrapbook и используете Debugger для пошагового выполнения.

Шаг 1: Установка лабораторной

Создайте новый проект и импортируйте (используя опцию Filesystem) класс CodeRallyScoreboard , который подготовлен для этой лабораторной работы в каталоге \Lab05\. Не выбирайте только один файл класса для импорта. Выберите каталог \Lab05\. Этот выбор позволит сделать импорт класса и структуры его пакета. Этот класс содержит код для чтения результатов гонок из файла, который автоматически сгенерирован игрой CodeRally.

Шаг 2: Использование страницы Scrapbook и Inspector

Экземпляр класса CodeRallyScoreboard создан с использованием конструктора CodeRallyScoreboard (String). Параметр, переданный в конструктор, – это имя файла информационного табло с результатами (scoreboard). Файл по умолчанию находится в Вашем каталоге рабочей области (workspace), например

..\workspace\.metadata\.plugins\com.ibm.coderally_1.1.1\scoreboard.txt

и создан в процессе игры coderally. Когда экземпляр класса создан, вызывается метод load(), в котором читается файл информационного табло и заполняется массив объектов информационного табло elements. Этот массив содержит информацию, которая может быть использована позже для отображения результатов игры в отдельном представлении.

Создайте новую страницу Scrapbook в текущем проекте (File ->New ->ScrapbookPage). Напишите код для создания нового экземпляра класса CodeRallyScoreboard и пошлите сообщение getElements() этому экземпляру. Выделите код и выберите Inspect из контекстного меню. Вы должны получить результат, похожий на рисунок ниже:

Выделенные строки были добавлены после выполнения кода. Почему тип CodeRallyScoreboard не может быть разрешен? Правильно, код запускается вне контекста пакета, который включает наш класс, поэтому нам нужно использовать полный описатель класса в scrapbook. Вместо добавления описателя пакета в класс, Вы можете настроить импортирование для страницы scrapbook. Для этого выберите SetImportsиз контекстного меню на странице и укажите пакеты, которые Вы используете в коде на этой странице.

Снова выделите код и снова выполните команду inspect. Появится представление expression, отображая массив строк, полученный из метода getElements() класса

CodeRallyScoreboard.

Посмотрите на детали объектов, заключенных внутри массива.

Шаг 3: Использование отладчика (Debugger)

Установите точку останова в конструкторе класса CodeRallyScoreboard. Снова выполните код со страницы scrapbook. Выполнение должно останвиться на точке останова. Делайте пошаговое выполнение до тех пор, пока не встретиться метод load(). Выполните команду Stepinto для этого метода, а затем Stepover и следите за значениями переменных в представлении Variables.

Пройдите сквозь весь метод и возобновите (Resume) выполнение программы в конце.

ЛАБОРАТОРНАЯ РАБОТА № 6

Тема: Изучение каталога подключаемых модулей.

Цель работы: Изучить каталога подключаемых модулейEclipseи определение отдельных элементов, требуемые для запуска плагина.

В этой лабораторной вы исследуете каталог подключаемых модулей и изучите из каких частей он состоит. В предыдущей лабораторной мы уже установили плагин для игры CodeRally. В этой лабораторной вы посмотрите на этот каталог и определите отдельные элементы, требуемые для запуска плагина.

Шаг 1: Определение расположения каталога подключаемых модулей

Найдите каталог подключаемых модулей com.ibm.coderally_1.1.1, находящийся внутри каталога платформы \plugins\.

Шаг 2: Определите структуру плагина

Найдите все файлы, требуемые для запуска плагина. Ответьте на следующие вопросы:

В каком файле определен плагин?

Какой(ие) файл(ы) содержит(ат) код для запуска плагина?

Где сохранены пиктограммы, используемые плагином?

Для чего служит файл свойств плагина?

Для чего служит подкаталог \docs\? Файл toc.xml используется для тех же целей? Откройте справку в Eclipse, чтобы ответы на эти вопросы.

ЛАБОРАТОРНАЯ РАБОТА № 7

Тема: Добавление новых Меню в Среду разработки.

Цель работы: Изучить процесса расширения Среды разработки (Workbench) с помощью дополнительного меню.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]