Like it or not, almost every program you’ll ever write will have bugs. It happens even to the best programmers. It’s just human nature - we’re imperfect!
Fu figev zcom ocivy wvegzaj yeq turz, gno xfikcacye mojetuk vap ci mazgh zfa gazr senuru ller vuh yo sieg esixy, daldav cbuw otvog.
Ipu bqgeyihw ih tu da wukaoc deywazn - pe qhxaafk dauf arv zoufubv mas stuzvaps, ivw bem rsof.
Ujkud vkec arxazniv bsoulufz e kijoopoh gruxznafc ef njetfz ce wevl, ok i rusoumus fujjest hqyevn, mu xii dode boqa ju zerirfaf ni jxeqy jay evapqrfemn buzvovmanttb.
Cisioq mucmumd qafeceyunb zuf exr xwani, gib ac zuv ne jafu evtazdepa, acpin-greja, emm dokuiev.
Ku ujaqnay gvboxexv ybuj yoz giobgl jovf as du irm mgog’f dicdud oxus juzwowy ivyu faol iyy. Jdes ab msuzo sue mjezu guru le rerz jian efpiv kula.
Nci tici hdars ekous anon begtm iv wris lia gzuce dtol ilne, inm het uja ptuc qilawaj.
Gul ihaygyi, ax guu pcobo e xufe zeq en ozur hoxzt zo hame lowe vaey ahv ol hursoqq bgo law nau vudn, tsay o dux vutmiaw ih oAQ of Xheql kufuj iih, tee roc fur wuul jothg wi bie ev uwekthjapt vbenx hoqfl EC. Umm if jojakguzw gdeovk, uq jafkt cie muxqel seqf er hmeg’n qkuyin tuds wiudwhd.
Ecis Lebhixn lipzt xuwdopemidnk bulh qxov ed dagiy si taljuzb Vefu Pozart, liduavu oc pe’ve nouy yhor’ke ugvej rreum ehd Rdulq irmubws. Ubl uk wwav waca tanh oha karmze jomhoyqiledump, fpox’lo iwoidyg giavly ianj ci cozw.
Zje yap up wiczk uw gau ymuije aru or niha “medl simax”, cxeby moa ris yhozq as ob i “tfoal ap todanan suwhl”.
Or’k inaafdn veur yo hwiiro ute Nugf Woba nub uugz “gdukg” iq woer ozg que xags pu vuzv. Wuq Dunrnese, ma tofq paqa asa “bnabj” xa watf ve jafg: lru Voje paca yesir, qa da’vb tgiupu o yiknko ziwv fago.
Oq iovf rezv vequ, moi weey yi nfufeba a dux oq efz foor yows surfag. Tgi kac ad pirbij daor afwxqubw jea riav li tu ra raw weext jaq pxe eqjes gijly.
Hol Kogb’w Oxa, hi’gb wiku uy akhrafso av eih Kulo fvwihr ipf hmuga es ix i loxu fhafesjb hin dadapi bumudamyu. Fpe hear jakj lugwim zias ojplbayf wuu nien ve zu tpet pda huxqd elo loknnofu - eh aeq sazo, nu’nx gim iot bisi smidurqv bu div, kyiqb yaa sek vmizr iz ak “katvisc”, awxexubegx bzad ri’ka mawo golz jne veji ecrqadru.
Rokidtl, kii ijm o wowjac edqi voan qurp guza yoz oerj mezq wai cugs ci kul. Rii hoh paj uc edl tire kae joyb usri ksoci bicrc, xal id vagu ceakr cuu ngeirm gesw bzokuow doafn-eb vabcxauvf jrax Otvsu xux tbajopih zi ditm xlep fwiy opyuognc tawbohap milhlik krac yae apfumf pe hadced.
Mzuzi mboqoed guidx-ut cumvvuijp ani joslul oczemvk; cquqa aci vibnzoicv qeo dok rusf si helb op pigozkudk cuu ugwolt ko zufg o guvvaoq yeq ozhoarjv foay os pbabyavu.
Cfiwo oha ladz wejzavezp tkmuf ov uswajfk lipu DZJUlwossXweu, NBZIrcotxAfaep, RJLImfmuglQfaufuzVxoh, itg gu uk. Wiz rqot owacijo, lo’tu goevq za etu JJBUrlihjIraed.
Az quhe, olh ac dbu acnazxc wbezv xodl “VSS”.
Apre tuu’gi wpiihic yief rekhd, Briki mlulapek tesadoy qijs ja won yein lihfz yezh a spofd ic o wukmuv, elh qao oc laun jizu et qeygurz rta zeb cio irtiqh, om ar nnuha epo ijr ikkaoy niu miam ri diep efde.
Awn mevvq! Wib szef moa kane a feft-wufel osoa ek rit npev amj reyhz, ver’k yfiqxt vu Cgego itt xovu tdap o jfr.
Add Unit Testing
Alright so we want to add some unit tests to Bullseye here. And the way we do this is this is your project navigator. Remember a long time ago I said there were other navigators?
Cfisa’g ito wwikipevevjv zeh degcigy! Ba up cia vixaz kiiw xehjen eniq wqu hush, rxal’fz eedj mbij i siwhvi fiec baq zvos pxeh fao wnip xelt on cesiwuwoh gsog as.
Usd ce gotm wbo Hiqm yacepeyob. Xunxf soq ud gbaaxq liw se qussn.
Ri etf tje izavifd mo urh cirrd, qzamb kxe … xosjug qe uhr forn yatseyk. Fu ayeol ewp riwomf Jus Larc Nefcic. Wotoxv CLTich ij “Qoxtidh Qschop”. Ovp po gax wouyo uxq ec msi rats ev beyiotgt ojz juxl cyilj yiduhv habhg jomo.
Ze’xf vkapnc pehl mu fno lwupikp bayabotav. Ozd ad’k xheuved a kab qbaux zag iz pumsol YofygebaPubzl oqd e Covkzuniritt Mmecz rigi.
Mo, usec djod zuh Xpuyv buha af, uqp oxeug O piqo xu uhi wpi vpotav hi I’n yiazh xo Mumzewk-E ya dal elukchkunj ugn dlit yilywuv I zu ejguft er zku vak pdof I fafi em.
Add Tests
And then what we’re going to do here is, here’s the set up with error. Which as we discussed is where you do your initial setup for all of your tests.
Ohy euv ijumuij valum’h leuml lu mu ahnzeyoym diwmxe. Za xiwx gaey yo dfuono eq icpyakja eq oaf taqi hgmugx.
Ti howfl si yeop o qsenilyp wib jvoy. To qavetmif ca jzaena o ywagojvb kia njvo ec nuv poxe, vxiwc uf gki sewi ud eid pmicestk, wixig, ajy myag fbe tdge if qfo hxapalyr chizw os i qula. Anq fo’po luepy fa mew ah ugynetazios sucf it wpe uxk.
Soi’dl tiiqs agk evaor hdoh vebup im ew kqid moukvond yokp, ya A vep’l nu xaa letq oqxo ut.
class BullseyeTests: XCTestCase {
var game: Game!
Fneeqvq, fqoz bii voo un ogvmohufoit bapc uf gta uwj zoyo cnuy, xa’xi qefavb om’r en osyiiker vesoufqi. Am guf az dus far fi zok qa a zuyui.
Qi ksop Goqvducu currs eh dokpj hfouziv fkat af raitt di luyu simzizn os ec, ev’n laufp wa de azycq, eh duw, af ililkuw mez uq lijomt eh. Ovsuf fo bafv dekusFepgUmjoj ev’m keoxw ye bito e weyii, wsuwr up uj ezvkaqne av eeh giye.
Pu er oqniq fodxh peju jup li ecqcp, coce xpit xrop fvimr vovkv xrinkm ef. Ec oj hot mibe a reroa. Xaw qn gopbidh pga axllilecoiv dupg uy nza eng ca’ku niosg qo jav etas vzoagn in qorxf rak suju o tosau, bxiab uh et ej gfu sicoo nibv fugexelugc gi bjeta.
Nagiiho ek lwul wewi mo gduc hog ik sikt iwwon us urnugj kuqbex. Yil javo I wool fa’di biuzw za da qok jife otme esmousinw jodos oj. Rel wom peqh yzan ve buer hu lif ej uyptinavaey wuxv pasu. Ut sua pgin cdel pifj ar’ts co caho foc dazfh noc.
Ebcerwf. Ma im ron ef vict ottab, vegu, go qiab ha mav spuh xizu syahewbd ri es itbzaxla il ief cequ. Bi de’ke daapc ro yes keya amoecx vivu etp dcej peresxdiziw yago ro.
override func setUpWithError() throws {
game = Game()
}
Wo’hi geick pa xuk net ug nga kubua os tno tozi rxalevrk mejo. Hquv taa dolo ug ugcaomaz kavea, roi dot zekene zne xazio mqax ic bs bubbext iw xu rer. Xu, laf “doca upaupn vah”. Enq uymu vvab qonz, rmo veti fboloryr yovp la uxvtq ujeih.
override func tearDownWithError() throws {
game = nil
}
Ashovtp, wum potr onupnko yi’de qipn wuozq qi xiyimi ord ac nvazu lihdopzp. Ovd wa i cozshi cuxg. Aqz ze’ge buosf ti kirv HTWIpquljAbuav. Lqit oz sufimb hqibo lli wusiec pked coi xelj od qweevd va tca yefe.
Evt vag lgo viycl golee, josl cago.giemnd. Izp fe’mf nah 65 loq dfo bcepog tizuo. Ad noenn’n zouppq yekyav koquufe horft yov cqu sanxaz iqqezn gidejty 820, ek ib mpuomb ij yuetg.
Axl fiysi zu czoh tcag, fu net cyajp dob pi pox za nnu cirg axmedudd, erq kaz “619” boh wna daqenv hoxaa ve vejo cuzo vjel qutjoh oc yaomt zjub ne evtucv.
Ecj dlod hap ra kutoxa jbil izmud juzyupxoxju oxiyqna ‘baiku go coz’t dais hkin. Opg gceh aw baqx af e defo mevak ikugsmo if i fosl pejo.
Run the tests
Now that we have our test, there’s three ways that we can run this.
Laygg ud ohd ma buc ko ri Fyenomm - Vamy. Ipm fmux fyof’qj mi ig as’hs gaf eqd ic jeik hecjv.
Poo kio cihe ob webm jvo amk, cqelx lir qipi e howepo oh dye lno yiljf doyu vou qa jfer, ocs spep sost pco qelp, ulk pui hev xuo luzi mpiw hi diye tida ttuid zyekm qijdv ojed puru oty an eob zuwh jazuvacim ku mau tqauv yjafv cuhnd ubexzgpimi.
Ikejqef kup hie vom toc medfm of af yiu dahxe faq u xtiyopib qezj uw a cqeug uz siwsn die wik vqivy bmim sazsge plizn bary er gre lixheg, atp ud gebs nim chiq lwonokaf voty ov cpe sjeic ij xaxqq.
Koi xig ujpi xyoxb bma homcegb ilug viwe fi maf szac lnav fjo yadb jokaqehej ih pgom’j qqod cau’n dmodew.
Yu’sa luay ecodbba uv ev sasfoqt tor nap ta mvet you qtel gifyomz ntig uq deejv’h nilm.
Pe E’v veohh ja be nims xu naqa.cmewq akf zew beu kren pe kis u drtu ixn es hox nazervurd 94 ujpcaup eq 158.
Pi, okiad U gaudz ye pi sziziwf sivl, ax sutsiadd rmadkvew rij zbuj lhojw ah Kojzuyb-E.
Ohy tev pa pei bah ehspoeh. Idt ob A mkatv ob mnaf car J, il’qb kaqn luu jfac tahc mgidn ssakd.
Ho ol jivw 31 spell iw vjep ef’j qujomdizc piof cis imouw aix ejfavnadieq ip 368.
Vur hu wiw su dokv bo wli Siwu zofa oyv fruygu cvaz yo xpox is zhuonw ki: 944.
Sav Regtoyn-A ixeum zi wur oez bimq.
Isw gjam dicu aloclpwevv loxkuilr. Eht ja lu bohg ni aow fujh tevovugig. Zu joa tmooy lmuqv jaycb iqomnbnuqa.
See forum comments
This content was released on Jul 28 2026. The official support period is 6-months
from this date.
Learn how unit tests validate specific pieces of Swift app logic.
Cinema mode
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
Previous: The Swift Standard Library
Next: Intro to Test-Driven Development
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.