Экстремальное программирование. Разработка через тестирование


Сначала оператор assert (Assert First)



Download 1,35 Mb.
Pdf ko'rish
bet72/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   68   69   70   71   72   73   74   75   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

Сначала оператор assert (Assert First)
Когд а след ует писать оператор assert
[13]
? Попробуйте писать их в
первую очеред ь. Неужели вам не нравится самопод обие?
• С чего след ует начать по строение системы? С формулировки
пожеланий
[14 ]
о том, как д олжна работать система, полученная в
результате вашей работы.
• С чего след ует начать разработку некоторой функционально сти? С
написания тестов, которые д олжны выполниться успешно, когд а код


буд ет полно стью завершен.
• С чего начать написание теста? С операторов assert, которые
д олжны выполняться в ход е тестирования.
С этой метод икой познакомил меня Джим Ньюкирк. Когд а я
начинаю разработку теста с операторов assert, я ощущаю мощный
упрощающий эффект. Когд а вы пишете тест, вы решаете несколько
проблем од новременно, д аже несмотря на то, что при этом вам не
нужно д умать о реализации.
• Частью чего является новая функционально сть? Является ли она
мод ификацией существующего метод а? Является ли она новым метод ом
существующего класса? Является ли она метод ом с известным именем,
но 
реализованным 
в 
д ругом 
месте? 
А 
может 
быть, 
новая
функционально сть – это новый класс?
• Какие имена присвоить используемым элементам?
• Как можно проверить правильно сть результата работы код а?
• Что считать правильным результатом работы код а?
• Какие д ругие тесты можно прид умать исход я из д анного теста?
Малюсенький мозг, такой как у меня, не сможет хорошо поработать
над решением всех этих проблем, если они буд ут решаться
од новременно. Две проблемы из привед енного списка можно легко
отд елить от всех о стальных: «Что считать правильным результатом?» и
«Как можно проверить правильно сть результата?»
Например, пред ставьте, что нам над о реализовать обмен д анными с
д ругой системой через сокет. По сле завершения операции сокет д олжен
быть закрыт, а в буфер д олжна быть прочитана строка abc:
testCompleteTransaction() {

assertTrue(reader.isClosed());
assertEquals("abc", reply.contents());
}
Откуд а д олжен быть прочитан объект reply? Конечно же, из сокета:
testCompleteTransaction() {

Buffer reply = reader.contents();
assertTrue(reader.isClosed());
assertEquals("abc", reply.contents());


}
А откуд а берется сокет? Мы созд аем его, под ключаясь к серверу:
testCompleteTransaction() {

Socket reader = Socket("localhost", defaultPort());
Buffer reply = reader.contents();
assertTrue(reader.isClosed());
assertEquals("abc", reply.contents());
}
Од нако перед этим мы д олжны установить соед инение с сервером:
testCompleteTransaction() {
Server writer = Server(defaultPort(), "abc");
Socket reader = Socket("localhost", defaultPort());
Buffer reply = reader.contents();
assertTrue(reader.isClosed());
assertEquals("abc", reply.contents());
}
Теперь мы можем изменить имена в соответствии с используемым
контекстом, од нако в д анном случае мы малюсенькими шажками
сформировали набро сок теста, генерируя кажд ое решение в течение
пары секунд . Мы начали с написания оператора assert.

Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   68   69   70   71   72   73   74   75   ...   140




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish