Студопедия

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

КАТЕГОРИИ:

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






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 =

{


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

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