(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Экстремальное программирование на примере денег

$5+10 CHF=$10, если курс обмена 2:1

$5*2=$10

Сделать переменную amount закрытым членом класса

Побочные эффекты в классе Dollar?

Округление денежных величин?

equals()

hashCode()

Равенство значению null

Равенство объектов

Теперь, когда определено равенство (equality), с его помощью мы можем по­высить наглядность наших тестов. По идее, метод Dollar.times() должен возвра­щать новый объект Dollar, величина которого равна величине исходного объекта (метод которого мы вызываем), умноженной на коэффициент. Однако наш тест не показывает этого явно:

public void testMultiplicationO {

Dollar five=new Dollar(5);

Dollar product=five.times(2);

assertEquals(10. product.amount);

product=five.times(3):

assertEquals(15. product.amount);

}

Мы можем переписать первую проверку (assert-операцию) так, чтобы сравни­вать между собой объекты Dollar:

public void testMultiplicationO {

Dollar five= new Dollar(5);

Dollar product=five.times(2):

assertEquals(new Dollar(10). product);

product= five.timesO):

assertEquals(15. product.amount); }

Выглядит неплохо, поэтому перепишем и вторую проверку:

public void testMultiplication() {

Dollar five=new Dollar(5):

Dollar product=five.times(2);

assertEquals(new Dollar(10). product):

product=five.timesO):

assertEquals(new Dollar(15). product):

}

Теперь нам уже не нужна вспомогательная переменная product, поэтому устраним ее:

public void testMultiplicationO {

Dollar five=new Dollar(5):

assertEqua1s(new Dollar(10), five.times(2)):

assertEquals(new 0оПаг(15), five.times(3)):

}

Согласитесь, этот вариант теста значительно нагляднее. Учтем внесенные изменения. Теперь только класс Dollar использует экземплярную переменную amount, поэтому мы можем сделать ее закрытой:

Dollar

private int amount;

$5+10 CHF=$10, если курс обмена 2:1

$5*2=$10

Сделать переменную amount закрытым членом класса

Побочные эффекты в классе Dollar?

Округление денежных величин?

equals()

hashCode()

Равенство значению null

Равенство объектов

Вычеркиваем еще один пункт из списка задач. Заметьте, мы подвергли себя риску: если тест для равенства не смог бы точно определить корректность операции сравнения, тогда и тест для умножения не смог бы проверить, правильно ли оно работает. В TDD принято активное управление риском. Мы не гонимся за совершенством. Выражая все двумя способами - тестами и кодом, - мы надеемся уменьшить дефекты настолько, чтобы уверенно идти дальше. Время от времени наши рассуждения будут нас подводить, позволяя появляться ошибкам. Когда это случится, мы вспомним урок о том, что надо написать тест и двигаться дальше. Все остальное время мы отважно продвигаемся вперед под победно развевающейся зеленой полоской нашего индикатора (вообще-то мой индикатор не развевается, но я люблю помечтать).

Подводя итоги, мы:

• использовали только что разработанную функциональность для улучшения теста;

• заметили, что если два теста проваливаются одновременно, то наши дела плохи;

• продолжили, несмотря на риск;

• использовали новую функциональность тестируемого объекта для уменьшения зависимости между тестами и кодом.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Autodesk »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 11.07.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
AutoCAD LT 2019 Commercial New Single-user ELD Annual Subscription
AutoCAD LT 2019 Commercial New Single-user ELD Annual Subscription PROMO
AutoCAD - mobile app Premium CLOUD Commercial New Single-user ELD Annual Subscription
Quest Software. TOAD Professional Edition
VMware Workstation Pro 12 for Linux and Windows, ESD
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Реестр Windows. Секреты работы на компьютере
Мастерская программиста
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Растение Дурман (3)
Обладает ли лечебными свойствами растение Дурман? Если да, то какими?
 
"Косметический салон" Corel PaintShop Pro (4)
А мы вот реальный косметологический салон хотим открыть, и нужно туда заказать не мало разного...
 
Как извлечь рисунки из файла Word (49)
Вообще-то есть еще способ - сделать в Word-е Copy рисунка, открыть Microsoft Photo Editor и там:...
 
Купить часы (3)
Подскажите, где можно купить часы по хорошей цене?
 
футбол (3)
Здравствуйте. Чем можно заняться на выходных, а то я хочу отдохнуть хорошенько?
 
 
 



    
rambler's top100 Rambler's Top100