![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Import java.util.Date
public class ТестЛакомки extends TestCase { public TecтЛакомки(String name) { super(name): } public void тестСоздатьПосещениеКафе() { Date дата = new Date(); double булочки = 7.0; // 7 булочек double стоимость = 12.5 * 7; // цена 1 булочки - 12.5 руб. double вес = 60.0; // взвешивание лакомки double дельта = 0.0001; // точность ПосещениеКафе v = new ПосещениеКафе(дата, булочки, стоимость, вес); assertEquals(дата, v.получитьДату()); assertEquals(12.5 * 7, v.получитьСтоииость(), дельта); assertEquals(7.0, v.получитьБулочки(), дельта); assertEquals(60.0, v.получитьВес(), дельта); assertEquals(12.5, v.получитьЦену(). дельта); } } ПосещениеКафе.java import Java.uti1.Date; public class ПосещениеКафе { private Date егоДата; private double егоБулочки; private double егоСтоимость; private double eroBec; public ПосещениеКафе(Date дата, double булочки, double стоимость, double вес) { егоДата = дата; егоБулочки = булочки; егоСтоимость = стоимость; егоВес = вес; } public Date получитьДату() {return егоДата; } public double получитьБулочки() {return егоБулочки; } public double получитьСтоимость() {return егоСтоимость; } public double получитьЦену(){return егоСтоимость/егоБулочки; } public double получитьВес() {return eroBec; } } На этом шаге мы добавили тесты в класс ТестЛакомки, а также добавили методы в класс ПосещениеКафе. Унаследованные методы assertEquals позволяют проводить сравнение ожидаемых и фактических результатов тестирования. Очевидно, вы удивитесь этому подходу. Неужели нельзя вначале написать весь код класса ПосещениеКафе, а потом создать тесты? Ответ достаточно прост. Написание тестов перед написанием программного кода дает важное преимущество: мы знаем, что весь ранее созданный код компилируется и выполняется. Следовательно, любая ошибка вызывается текущими изменениями, а не более ранним кодом. И значимость этого преимущества усиливается по мере продвижения вперед. Далее определимся с хранением объектов класса ПосещениеКафе. Очевидно, что свойство егоВес характеризует лакомку. Таким образом, объект ПосещениеКафе записывает часть состояния лакомки па момент посещения кафе. Следовательно, нужно создать объект Лакомка и содержать объекты класса ПосещениеКафе в нем. Листинг 16.5. ТестЛакомки.java и Лакомка.java ТестЛакомки.java import junit.framework.*; import ПосещениеКафе; import java.util.Date public class ТестЛакомки extends TestCase { public TecтЛакомки(String name) { super(name); } … public void тестСоздатьЛакомку() { Лакомка g = new Лакомка(); assertEquals(0, д.получитьЧислоПосещений()); } } Лакомка.Java
|