Listing 3-2 HtmlUtil.java (refactored) davlat statik Mag'lubiyatga renderPageWithSetupsAndTeardowns(
PageData pageData, boolean isSuite
) istisno soladi {
= boolean isTestPage pageData.("Test hasAttribute");
(agar isTestPage ) {
= WikiPage testPage pageData.getWikiPage();
= StringBuffer newPageContent yangi StringBuffer();
includeSetupPages (, newPageContent, isSuite testPage);
newPageContent.append(pageData.getContent());
includeTeardownPages (, newPageContent, isSuite testPage);
pageData.setContent(newPageContent.toString());
}
pageData qaytish.getHtml();
}
Listing 3-1 (davomi) HtmlUtil.java (FitNesse 20070619) www.it-ebooks.info
34
Bob 3: Vazifalari Agar FitNesse bir talaba ekan, agar, ehtimol, barcha ma'lumotlarni tushunish emas.
Shunday bo'lsa-da, siz, ehtimol, bu funktsiya bir sinov sahifaga ba'zi o'rnatish va
teardown sahifalar kiritish amalga oshiradi va keyin HTML ichiga bu sahifa ko'rsatadi, deb tushunish. Agar
JUnit bilan tanish bo'lsangiz,
2
ehtimol, bu funktsiya veb-asoslangan sinov doirasida ayrim turdagi tegishli ekanligini tushunib
. Va, albatta, bu to'g'ri. 3-2 listingidan olingan ma'lumotni
tarqatish juda oson, ammo bu 3-1 listingiga juda mos keladi.
Shunday qilib, Listing kabi bir vazifani qiladi, deb u nima 3-2 o'qish va tushunish oson? Qanday
qilib biz bir vazifani o'z niyatini muloqot qilish mumkin?
Casual reader ular ichida yashayotgan dastur qanday intuit imkonini beradi, bizning vazifalari berishi mumkin, biz nima sifatlari?
Kichik! Funksiyalarning birinchi qoidasi shundan iboratki, ular kichik bo'lishi kerak. Funksiyalarning ikkinchi qoidasi shundan
kichik bo'lishi kerak . Bu men oqlay oladigan iddao emas.
Tadqiqotlarga hech qanday murojaat qila olmayman, bu juda kichik funktsiyalar yaxshiroq ekanligini ko'rsatadi. Men sizga aytishim mumkin, nima
deyarli to'rt o'n yillar davomida men har xil darajada vazifalarni yozdim, deb. Ayting
yozilgan bir necha jirkanch 3,000-line abominations. Men vazifalari scads yozilgan ayting 100 uchun 300
liniyasi qator. Va men edi vazifalarni yozilgan ayting 20 uchun 30 uzoq chiziqlar. Nima bu tajriba
meni o'rgatdi, uzoq sinov va xato orqali, vazifalari juda kichik bo'lishi kerak, deb hisoblanadi.
Saksoninchi yillarda biz bir funktsiya ekran-to'liq ortiq hech katta bo'lishi kerak, deb aytish uchun ishlatiladi.
Albatta, biz VT100 ekranlar edi bir vaqtning o'zida 24 tomonidan chiziqlar 80 ustunlar, va
bizning muharrirlar foydalanish 4 ma'muriy maqsadlar uchun chiziqlar. Bugungi kunda krankli shrift
va chiroyli katta monitor bilan siz 150 belgisiga va 100 satriga yoki undan ko'proq
ekranga mos kelishi mumkin. Lines uzoq 150 belgilar bo'lmasligi kerak. Vazifalar 100 satr uzun bo'lmasligi kerak.
Vazifalari deyarli hech bo'lishi kerak 20 uzoq chiziqlar.
Funksiya qanday qisqa bo'lishi kerak? 1999 yilda Kent Bekni Oregon shtatidagi uyiga ziyoratga bordim
. Biz o'tirdi va birgalikda ba'zi dasturlash qildim. Bir nuqtada u menga
Sparkle deb nomlangan yoqimli kichik Java/Swing dasturini ko'rsatdi . Bu
kino Zolushka fairy godmother sehrli tayoqcha juda o'xshash ekranda ingl ta'sir ishlab chiqarilgan.
Sichqonchani ko'chirar ekansiz, uchqunlar kursordan
simulyatsiyalangan gravitatsion maydon orqali oynaning tagiga tushib, qoniqarli skintillyasiya bilan tomchilardi. Kent Qachon
menga kodni ko'rsatdi, men barcha vazifalari qanday kichik hayratga soldi. Men
vertikal makon kilometr oldi tebranish dasturlarida vazifalari uchun ishlatilgan. Bu dasturda har bir funktsiya faqat ikki edi, yoki uch, yoki to'rt chiziqlar uzoq. Har biri oshkora Ravshan edi. Har
bir hikoya aytib berdi. Va har bir Jabbor tartibda keyingi sizni olib. Sizning vazifalaringiz qanchalik qisqa
bo'lishi kerak!
3
2.
Java uchun ochiq manba birligi-sinov vositasi. www.junit.org
3.
Kentdan hali ham nusxasi bor-yo'qligini so'radim, lekin bittasini topa olmadi. Men eski kompyuterlarimni ham qidirdim, lekin hech qanday foyda yo'q.
Hozir qolgan barcha narsa bu dasturning xotirasidir.
www.it-ebooks.info
35