Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Public class DiscountTest
Практичне завдання до теми 3 1. Вимоги щодо оформлення звіту Звіт подається у вигляді документу MS Word (будь-якої версії), що містить: 1) варіант завдання; 2) програмний код класу тестів; 3) пояснення щодо вибору тестуючих комбінацій (класу еквівалентності). Назва документу складається з фамилії та ініціалів студента, номера групи. Варіант 1. Дано код програми торгового кошика ShoppingCart. Необхідно описати класи еквівалентності та здійснити модульне тестування для ме-тоду addItem, для якого сформульовано наступні вимоги: 1) назва товару повинна бути не пустою і не перевищувати 32 символи; 2) ціна повинна бути більшою нуля і меншою 1000; 3) кількість товару повинна бути більшою нуля, але не більшою 1000; 4) тип товару повинен бути одним з допустимих типів, описаних константами Item.Type; 5) при додаванні 100-го товару повинно викинутися виключення IndexOutOfBoundsException; 6) при неправильному параметрі товару повинно викинутися виключення IllegalArgumentException. Необхідно описати класи еквівалентності та розробити параметризовані модульні тести для методу ShoppingCart. calculateDiscount, який розраховує знижку (Discount) за наступними правилами: 1) для REGULAR товаров знижки немає; 2) для SECOND товарів знижка становить 50%, якщо їх купують більше одного; 3) для DISCOUNT товарів знижка становить 10% і по 10% за кожний повний десяток товарів, але не більше 50% сумарно; 4) для SALE товарів знижка становить 90%; 5) крім того за кожну повну сотню товарів додається 10% знижки, але так, щоб сумарна знижка не перевищувала 80%. Повна ціна розраховується як ціна товару × кількість × знижку. Контрольний приклад Варіант 1. Тестування методу addItem. import org.junit.*; import static org.junit.Assert.*; public class AddItemTest { Private ShoppingCart cart; @Before public void createCart(){ cart = new ShoppingCart(); } @Test(expected = IllegalArgumentException.class) public void zeroPrice(){ cart.addItem(" Title", 0.00f, 1, Item.Type.REGULAR); } @Test(expected = IllegalArgumentException.class) public void zeroPrice(){ cart.addItem(" Title", 0.00f, 1, Item.Type.REGULAR); } .... } 1) Тест AddItemTest.zeroPrice() – перевірка значення за межею допустимого діапазо-ну (перевірка робастності). 2)........ Варіант 1. Тестування методу ShoppingCart. calculateDiscount Створимо три тестові масиви: Q_VALUES – масив варіантів кількості одиниць товару; T_VALUES – масив варіантів типу товару; D_VALUES – масив контрольних(очікуваних) значень дисконту (знижки). Код тесту матиме вигляд: import org.junit.*; import static org.junit.Assert.*; import java.util.*; import org.junit.runners.*; import org.junit.runner.*; @RunWith(Parameterized.class) public class DiscountTest { private static final int[] Q_VALUES = {1, 9, 10, 19}; private static final Item.Type[] T_VALUES = {
|