Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Return discount;






}

/** Container for added items */

private List items = new ArrayList();

}

public class Item {

public enum Type { SECOND, REGULAR, SALE, DISCOUNT };

Public String title;

Public float price;

Public int quantity;

Public Type type;

public Item(String title, float price, Item.Type type, int quantity){

this.title = title;

this.price = price;

this.type = type;

this.quantity = quantity;

}

}

 

ПРАКТИЧНЕ ЗАВДАННЯ №2

Сформувати для заданого коду модульні тести (з використання JUnit), покрити ними наступні методи (вимоги описані в коментарях до методів):

ShoppingCart.appendFormatted(StringBuilder, String, int, int)

ShoppingCart.calculateDiscount(ItemType, int)

Провести рефакторинг коду, дописуючи тести в разі необхідності з метою зменшен-ня імовірності появи помилок редагування. Варто покривати тестами метод, перед його розбиванні на складові частини.

Рефакторинг необхідно проводити поетапно, після успішного застосування кожного методу рефакторинга (наприклад, виділення методу чи заміни локальної змінної викликом метода) необхідно робити копію папки з програмними кодами (створіть папку commits, куди будите копіювати папку з програмними кодами, переіменовуючи її в 0001, 0002, і т.д.). Рефакторинг повинен супроводжуватися пояснювальною запискою, яка описує зміни, які відбуваються з кодом. В цій записці необхідно вказувати на недоліки коду, спо-соби усунення цих недоліків та ім’я папки, в якій міститься. Наприклад:

1. Занадто великий метод ShoppingCart.formatTicket(), оскільки він виконує відразу декілька функцій (вказати яких), виділяємо з цього методу код, що вико-нує пов’язані підфункції і виносимо в окремі методи. Результат в папці 0028 (це означає, що виправлення цього недоліку займає 28 кроків).

2. …

 

Програмний код приведений нижче.

import java.util.*;

import java.text.*;

/**

* Containing items and calculating price.

*/

Public class ShoppingCart

{

public static enum ItemType { NEW, REGULAR, SECOND_FREE, SALE };

/**

* Tests all class methods.

*/

public static void main(String[] args)

{

// TODO: add tests here

ShoppingCart cart = new ShoppingCart();

cart.addItem(" Apple", 0.99, 5, ItemType.NEW);

cart.addItem(" Banana", 20.00, 4, ItemType.SECOND_FREE);

cart.addItem(" A long piece of toilet paper", 17.20, 1, ItemType.SALE);

cart.addItem(" Nails", 2.00, 500, ItemType.REGULAR);

System.out.println(cart.formatTicket());

}

/**

* Adds new item.

*

* @param title item title 1 to 32 symbols

* @param price item ptice in USD, > 0

* @param quantity item quantity, from 1

* @param type item type

*

* @throws IllegalArgumentException if some value is wrong

*/


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал