lezione 09

testing e quality

xctest, assert e qualità continua.

livello: intermedio durata: 26 min output: test suite badge: swift essentials

xctest

import XCTest
final class MathTests: XCTestCase {
  func testSum() { XCTAssertEqual(2 + 2, 4) }
}

funzioni

func saluta(_ nome: String) -> String {
  "ciao \(nome)"
}
print(saluta("studio"))

mantieni le funzioni corte e con output prevedibile.

error handling

enum LoadError: Error { case missing }
func load(_ ok: Bool) throws -> String {
  if !ok { throw LoadError.missing }
  return "ok"
}

struct e proprietà

struct Project {
  let name: String
  var shots: Int
}
var p = Project(name: "Nova", shots: 12)
p.shots += 1

esercizi

scrivi un test semplice con XCTAssertEqual.

import XCTest
final class CoreTests: XCTestCase {
  func testCount() { XCTAssertEqual([1,2].count, 2) }
}

panoramica

In questo capitolo su testing e quality lavoriamo su xctest, funzioni, error handling, struct e proprietà per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: swift essentials

obiettivi

  • capire e applicare xctest in uno scenario reale
  • capire e applicare funzioni in uno scenario reale
  • capire e applicare error handling in uno scenario reale
  • capire e applicare struct e proprietà in uno scenario reale

scheda rapida

import XCTest
final class MathTests: XCTestCase {
  func testSum() { XCTAssertEqual(2 + 2, 4) }
}

adatta questo scheletro agli esempi della lezione.

tips

  • preferisci value types quando possibile
  • usa guard per early exit
  • mantieni le view leggere
  • separa networking e ui
  • scrivi test su logica critica
  • mantieni i test piccoli e indipendenti

tip: documenta ogni scelta architetturale.

mini progetto

crea una suite di test per funzioni core.

  • crea classe XCTest
  • aggiungi assert
  • esegui test

output atteso: test verdi.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief