XCTestCase: määritys, purku ja testimetodit
Testiluokkien jäsentäminen setUp-/tearDown-metodeilla ja testimetodien nimeäminen.
XCTestCase: määritys, purku ja testimetodit on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.
XCTestCase-perusteet
XCTestCase on kaikkien Swift-yksikkötestien perusluokka. Jokainen "test"-alkuinen metodi on testitapaus.
import XCTest
final class MathTests: XCTestCase {
func testAddition() {
XCTAssertEqual(2 + 2, 4)
}
}setUp ja tearDown
setUp() suoritetaan ennen jokaista testiä. tearDown() suoritetaan jokaisen testin jälkeen. Käyttäkää niitä jaetun tilan alustamiseen ja siivoamiseen.
final class UserServiceTests: XCTestCase {
var sut: UserService!
override func setUp() {
super.setUp()
sut = UserService()
}
override func tearDown() {
sut = nil
super.tearDown()
}
}setUpWithError ja tearDownWithError
setUpin ja tearDownin virheitä heittävät versiot: jos valmistelu heittää virheen, testi merkitään automaattisesti epäonnistuneeksi.
override func setUpWithError() throws {
sut = try UserService(config: loadTestConfig())
}
override func tearDownWithError() throws {
try sut.cleanup()
}Luokkatasoinen valmistelu
class setUp() ja class tearDown() suoritetaan kerran ennen luokan kaikkia testejä ja niiden jälkeen — tämä on hyödyllistä paljon resursseja vaativille jaetuille resursseille.
final class DBTests: XCTestCase {
static var db: TestDatabase!
override class func setUp() {
super.setUp()
db = TestDatabase.inMemory()
}
override class func tearDown() {
db.close()
super.tearDown()
}
}Testimetodien nimeäminen
Nimetkää testit muodossa test_methodName_condition_expectedResult, jotta nimet ovat helposti luettavia ja virheilmoitukset selkeitä.
func test_login_withValidCredentials_returnsUser() throws { ... }
func test_login_withInvalidPassword_throwsUnauthorized() throws { ... }addTeardownBlock
Rekisteröikää testikohtaiset siivouslohkot suoraan ilman tearDown-metodin ohittamista.
func testCreateFile() throws {
let url = FileManager.default.temporaryDirectory.appendingPathComponent("test.txt")
addTeardownBlock { try? FileManager.default.removeItem(at: url) }
// ... test
}Testien poistaminen käytöstä
Ohittakaa testi lisäämällä testimetodin alkuun _ tai kommentoimalla se pois käytöstä. XCTest tukee myös ohittamista XCTSkipIf-toiminnolla.
func testExperimentalFeature() throws {
try XCTSkipIf(ProcessInfo.processInfo.environment["CI"] != nil, "Skip on CI")
// ... test
}Testimetodit eivät voi heittää virheitä (ennen Xcode 16:ta)
Aiemmissa Xcode-versioissa throws-määritteellä ilmoitetut testimetodit välittävät virheet testin epäonnistumisiksi XCTAssertNoThrow-funktion kautta.
func testDecode() throws {
let user = try JSONDecoder().decode(User.self, from: validJSON)
XCTAssertEqual(user.name, "Alice")
}Testin epäonnistuttaminen nimenomaisesti
Kutsukaa XCTFail("reason")-funktiota pakottaaksenne testin epäonnistumaan kuvailevan viestin kanssa.
func testCallback() {
var called = false
service.doWork { called = true }
if !called { XCTFail("Callback was never invoked") }
}Testisuunnitelmat
Xcoden Test Plans -toiminnolla voitte suorittaa samat testit eri määrityksillä, kuten eri kielellä, ympäristömuuttujilla tai sanitisereilla.
// File → New → Test Plan
// Add test targets and configure per-configuration env vars
// Useful for running localized UI tests or with Address SanitizerRinnakkainen testaus
Ottakaa rinnakkainen testaus käyttöön Xcoden skeema-asetuksissa, jotta testiluokat suoritetaan samanaikaisesti ja testien kokonaisaika lyhenee.
// Product → Scheme → Test → Options → Execute in parallel
// Each XCTestCase class runs in a separate process
// Ensure tests are independent and don't share global statePikatarkistus
Mikä XCTestCase-metodi suoritetaan kerran ennen luokan kaikkia testejä, ei jokaisen yksittäisen testin yhteydessä?
Oppitunnin yhteenveto
Ohittakaa setUp/tearDown-metodit tai niiden virheitä heittävät versiot testiä kohti tehtävää valmistelua ja siivousta varten. Käyttäkää class setUp/tearDown-metodeja kerran luokkaa kohti tarvittaville resursseille. Nimetkää testit kuvailevasti. Käyttäkää addTeardownBlock-toimintoa suoraan määritettävään siivoukseen ja XCTSkipIf-toimintoa ehdolliseen ohittamiseen.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”XCTestCase: määritys, purku ja testimetodit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “XCTestCase: määritys, purku ja testimetodit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”XCTestCase: määritys, purku ja testimetodit”?
Testiluokkien jäsentäminen setUp-/tearDown-metodeilla ja testimetodien nimeäminen. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”XCTestCase: määritys, purku ja testimetodit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- XCTestCase: määritys, purku ja testimetodit
- XCTAssert-perhe ja virheitä heittävät tarkistukset
- Protokollapohjainen mockaus ja riippuvuuksien injektointi
- Asynkroniset testit ja suorituskyvyn mittaaminen