Tesztelés az Objective-C kurzuson

Tanuld meg, hogyan tesztelheted az Objective-C feladataidat az Exercism-ön


Az Exercism csak egy tesztfájlt tölt le. A feladathoz tartozó fejlécfájlt és forrásfájlt neked kell kézzel létrehoznod. Létre kell hoznod egy Xcode-projektfájlt a tesztfájllal, a fejlécfájllal (.h) és a forrásfájllal (.m). Másik lehetőség, hogy egy tesztfuttató segédprogramot használsz, amelyet az alábbiakban ismertetünk.

A projekt létrehozása az Xcode-ban

  • Indítsd el az Xcode-ot, és hozz létre egy új projektet.
  • Válaszd az OS X > Application, majd a Command Line Tool lehetőséget.
  • Kattints a Next gombra, és adj neki projektnevet; ehhez érdemes az ExerciseName nevet használni.
  • Kattints a Next gombra, és mentsd a projektet az Exercism feladatkönyvtárába.
  • Most, hogy létrejött a projekt, kattints az Editor > Add Target menüpontra.
  • Válaszd az OS X > Test, majd az OS X Unit Testing Bundle lehetőséget.
  • Nevezd el a célt ExerciseName Tests néven.
  • A bal oldali panelen (amit navigátornak neveznek) nyisd meg a Project navigator nézetet, bontsd ki az ExerciseName Tests mappát, és nyisd meg az ExerciseName_Tests.m fájlt.
  • Cseréld le a tartalmát arra a tesztfájlra, amelyet az Exercism-től kaptál.
  • Ebben a fájlban cseréld le a „test_suite” összes előfordulását „ExerciseName_Tests”-re.
  • Nyisd meg a jobb oldali panelen a File Template könyvtárat (vagy használd a CTRL+OPTION+CMD+1 billentyűkombinációt), és húzd a Cocoa Class sablont az ExerciseName_Tests mappába a Project navigatorban.
  • Nevezd el ExerciseName néven, és válaszd célként az ExerciseName Tests lehetőséget.
  • Most két új fájl lesz az ExerciseName_Tests könyvtáradban: ExerciseName.h és ExerciseName.m.
  • Kattints a projektedre a Project navigatorban.
  • Kattints az ExerciseName Tests elemre a célok listájában.
  • Válaszd a Build Phases lehetőséget a szerkesztő navigációjában.
  • Ellenőrizd, hogy mindkét .m fájlod szerepel a fordítási források listájában.
  • A CMD+5 billentyűkombinációval nyisd meg a Test navigátort.
  • Kattints jobb gombbal az ExerciseName Tests nevű csomagra, majd válaszd az Enable ExerciseName_Tests lehetőséget.
  • Futtasd a teszteket úgy, hogy a Test navigátorban a csomag fölé viszed az egeret, és rákattintasz a megjelenő jobbra mutató háromszögre, vagy használd a CMD+U billentyűkombinációt.

A tesztek az Xcode-on keresztül futnak.

Megjegyzés: Ha ezt a hibát kapod: „No visible @interface for ExerciseName declares the selector ExerciseSelector”, akkor helyesen követted a lépéseket, csak még nem írtál semmit a fejléc- vagy implementációs fájlodba. Miután deklarálod a metódusodat a .h fájlban, és definiálod a .m fájlban, a tesztjeid hasznosabb hibákat fognak jelezni, amelyek elvezetnek a feladat befejezéséhez. Ha részletesebb információra vágysz, olvasd el ezt az Objective-C osztályokról szóló bevezetőt.

Egy tesztfuttató

A projektfájl kézi létrehozása helyett használhatsz egy rubyban írt tesztfuttató segédprogramot, az objc-t, amely létrehozza neked a projektfájlt a tesztfájllal, a fejlécfájllal és a forrásfájllal.

$ gem install objc

Futtasd a teszteket ezzel:

$ objc -x ExerciseName

(Figyeld meg a -x/--xcodebuild kapcsolót, amely azt adja meg, hogy xcodebuild-et használjon xctool helyett. Ez utóbbi nem működik az Xcode legújabb kiadásaival.)

Az objc segédprogram a feladat neve alapján keresi meg a tesztfájlt, ExerciseNameTest.m-t, a fejlécfájlt, ExerciseName.h-t és a forrásfájlt, ExerciseName.m-t. A fájlok bekerülnek egy ideiglenes Xcode-projektbe, majd a xcodebuild futtatja a projekt tesztjeit.

Bár az objc révén soha nem kell elindítanod az Xcode-ot a feladatok megoldásához, a parancssoron keresztül kapott hibaüzenetek és visszajelzések nem olyan egyértelműek, mint az Xcode felületén.