Объектно-ориентированное программирование разработка через тестирование



страница2/4
Дата14.06.2018
Размер0,59 Mb.
ТипУчебно-методическое пособие
1   2   3   4

Итак, приступим. Создадим проект в Eclipse, назвав его practicalWorks. Для этого следует выполнить действия:

1 Выбрать меню File.

2 Затем New > Project.

3 В появившемся окне (рисунок 2) выбрать Java Project и нажать Next.

4 В следующем окне в поле Project name ввести practicalWorks (рисунок 3). Нажать Next.



Рисунок 2 – Выбор типа проекта



Рисунок 3 – Ввод названия проекта
5 Перейти к закладке Libraries (рисунок 4). Нажать Add External JARs и добавить фреймворк junit (файл junit.jar). После чего нажать Finish.

Рисунок 4 – Добавление фреймворка JUnit в проект
Далее создадим пакет, дав ему название practicalWorks.tdd (сокращенное от Test-Drive Development). Для этого нужно щелкнуть правой кнопкой мыши на проекте practicalWorks, в появившемся контекстном меню выбрать New, а затем Package (рисунок 5). В появившемся окне (рисунок 6) ввести practicalWorks.tdd и нажать Finish.

Следующим шагом создадим тестирующий класс. Для этого щелчком правой кнопки мыши на только что созданном пакете вызываем контекстное меню, в котором выбираем New и затем – Class.



В появившемся окне (рисунок 7) укажем в качестве имени класса TestOrderQuery, а в качестве класса-родетеля (Superclass) – jnit.framework.TestCase.



Рисунок 5 – Создание пакета



Рисунок 6 – Ввод имени пакета
Начнем с верхней задачи, напишем код, считая при этом, что наш тестируемый класс уже имеет устоявшийся интерфейс.

public void testCount(){

OrderQuery orderQuery = new OrderQuery();

assertEquals(0, orderQuery.getCount());



}



Рисунок 7 – Создание тестирующего класса
Для запуска тестирующего класса нужно использовать контекстное меню, вызываемое правой кнопкой мыши, при нажатии на имя класса, а затем нужно выбрать Run As > JUnit Test (рисунок 8).

Рисунок 8 – Запуск тестирующего класса в среде Eclipse
Созданный тест даже не компилируется, так как еще не создан класс orderQuery и нет конструктора OrderQuery(), а также – метода getCount().

Избавимся от этих ошибок, определим класс

class OrderQuery

далее конструктор

public OrderQuery(){

}

осталось последнее исправление (так как метод должен вернуть целое число, то пусть это будет первое, что пришло в голову, например, пять)



public int getCount(){

return 5;



}

Теперь мы полностью готовы к тестированию, Запускаем тест, и видим (рисунок 9), что наш тест «слетел» (индикатор красный).



Рисунок 9 – Тест «слетел»
Среда тестирования JUnit выполнила небольшой фрагмент кода, с которого мы начали, и выяснилось, что ожидался результат «0» – а вместо него был получен результат «5».

Далее, следуя постулатам TDD, наша цель не получить идеальное решение, а заставить тест выполняться. Возможно, это странно, но это так!

Для этого просто изменим метод getCount(), так чтобы он возвращал 0:

public int getCount(){

return 0;

}

Перезапустим тест. Вот она, наконец-то, зеленая полоска (рисунок 10).



Рисунок 10 – Тест успешно выполнился
Полный цикл TDD состоит из следующих этапов:

1 Добавить небольшой тест.

2 Запустить все тесты, при этом обнаружить, что что-то не срабатывает.

3 Внести небольшое изменение.

4 Снова запустить тесты и убедиться, что все они успешно выполняются.

5 Устранить дублирование с помощью рефакторинга.

Мы выполнили первые четыре пункта цикла, и все готово к устранению дублирования. Обычно программист замечает дублирование в нескольких разных фрагментах кода, в нашем случае – друг друга дублируют тест и тестируемый код.

Добавим в класс OrderQuery закрытое свойство ArrayList orders, и сразу проинициализируем его, не забыв при этом ипортировать java.util.ArrayList.

private ArrayList orders = new ArrayList();

И, наконец, ключевой момент: заменим тело метода getCount() на

return orders.size();

Запустим еще раз тест и убедимся, что он выполнен успешно. Отметим, что частично первое задание выполнено, необходимо еще протестировать этот метод при удалении и добавлении заказов.




Получить общее количество заказов в очереди

Проверить при пустой очереди

Проверить при добавлении заказа

Проверить при удалении заказа



Добавить три заказа в очередь

Получить общую стоимость заказов в очереди

Получить заказ с максимальной стоимостью

Удалить заказ с максимальной стоимостью



Каталог: site -> assets -> files
files -> Основная образовательная программа высшего образования
files -> Зарубежный опыт нравственного воспитания молодёжи посредством культурного и природного наследия: теоретические походы
files -> Статья Основные принципы законодательства о градостроительной деятельности Статья Законодательство о градостроительной деятельности
files -> Маршруты культурного наследия Совета Европы как общеевропейская модель нравственного воспитания молодёжи
files -> Программа-минимум кандидатского экзамена по специальности 08. 00. 14 «Мировая экономика» по экономическим наукам
files -> Программа-минимум кандидатского экзамена по специальности
files -> Маркетинговые исследования рынка
files -> Программа минимум кандидатского экзамена по курсу «История и философия науки» «История педагогики»
files -> Рассказанная мовсесом хоренаци по просьбе сахака багратуни մՈՎՍԷՍ ԽՈՐԵՆԱՑԻ ՀԱՅՈՑ ՊԱՏՄՈՒԹԻՒՆ
files -> Проектирование участка новой железной дороги


Поделитесь с Вашими друзьями:
1   2   3   4


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал