Test Swift : par où commencer pour un développeur débutant

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi le test n'est pas qu'une « case à cocher », mais votre bouée de sauvetage

\n\n

Imaginez : vous avez écrit une super application en Swift, tout fonctionne, vos amis sont ravis. Mais une semaine passe, vous ajoutez une nouvelle fonctionnalité — et boum ! Tout casse. Cela vous dit quelque chose ? Si non, vous êtes soit un génie, soit vous n'avez pas encore été confronté au développement réel. Tester le code n'est pas une corvée ennuyeuse, mais un outil qui vous fait gagner des heures de stress et fait de vous un développeur confiant.

\n\n

Dans cet article, nous allons voir par où commencer le test en Swift si vous êtes débutant. Vous découvrirez ce qu'est XCTest, comment écrire des tests unitaires et des tests UI, et vous obtiendrez des exemples de code prêts à l'emploi. C'est parti !

\n\n

Qu'est-ce que le test en Swift et pourquoi en a-t-on besoin

\n\n

Le test est le processus qui vérifie que votre code fait exactement ce que vous attendez de lui. Dans le monde Swift, le framework principal pour cela est XCTest. Il est intégré à Xcode et permet d'écrire des tests de tous niveaux : de la vérification d'une seule fonction à la simulation de clics de boutons par l'utilisateur.

\n\n

Voici trois raisons principales pour lesquelles vous devriez maîtriser le test Swift dès maintenant :

\n
    \n
  • Confiance dans le code. Vous cessez d'avoir peur de modifier ou de refactoriser — les tests vous couvrent.
  • \n
  • Gain de temps. Mieux vaut passer 10 minutes sur un test que 2 heures à chercher un bug en production.
  • \n
  • Documentation. Les tests sont une documentation vivante de votre code. Un nouveau développeur (ou vous-même dans un mois) comprendra la logique sans mots inutiles.
  • \n
\n\n

Pour les débutants, le test iOS peut sembler complexe, mais en réalité, le premier pas se fait en 5 minutes.

\n\n

Configuration de l'environnement : premier test en 5 minutes

\n\n

Ouvrez Xcode et créez un nouveau projet (File → New → Project → App). Assurez-vous que la case Include Tests est active. Xcode créera automatiquement deux cibles :

\n
    \n
  • YourAppTests — pour les tests unitaires.
  • \n
  • YourAppUITests — pour les tests UI.
  • \n
\n\n

Si le projet existe déjà, ajoutez une cible de test manuellement : File → New → Target → iOS Unit Testing Bundle.

\n\n

Maintenant, cliquez sur le fichier YourAppTests.swift. Vous verrez une ébauche de classe héritée de XCTestCase. Supprimez tout et écrivez votre premier test :

\n\n
import XCTest\n@testable import YourApp\n\nfinal class FirstTests: XCTestCase {\n\n    func testExample() {\n        let result = 2 + 2\n        XCTAssertEqual(result, 4, "Les maths ont failli !")\n    }\n}\n
\n\n

Cliquez sur le losange à gauche de la ligne func testExample et sélectionnez Test. Si une coche verte apparaît — vous venez d'écrire votre premier test unitaire en Swift ! Félicitations.

\n\n

Notez la ligne @testable import YourApp. C'est une ligne clé : elle donne accès aux classes internes de votre application pour que les tests puissent les voir.

\n\n

Tests unitaires : vérifions la logique de l'application

\n\n

Les tests unitaires sont la base. Ils vérifient des fonctions, méthodes ou classes individuelles. Écrivons un test pour une simple calculatrice.

\n\n

Création du code à tester

\n\n

Ajoutez un nouveau fichier Swift à la cible principale (pas dans les tests !) avec la classe :

\n\n
import Foundation\n\nstruct Calculator {\n    func add(_ a: Int, _ b: Int) -> Int {\n        return a + b\n    }\n    \n    func divide(_ a: Int, _ b: Int) throws -> Int {\n        guard b != 0 else {\n            throw CalculationError.divisionByZero\n        }\n        return a / b\n    }\n}\n\nenum CalculationError: Error {\n    case divisionByZero\n}\n
\n\n

Écriture des tests

\n\n

Dans le fichier de test (rappel : il est dans le groupe YourAppTests), écrivons :

\n\n
import XCTest\n@testable import YourApp\n\nfinal class CalculatorTests: XCTestCase {\n\n    var calculator: Calculator!\n\n    override func setUpWithError() throws {\n        calculator = Calculator()\n    }\n\n    override func tearDownWithError()                

Blogs

Book Recommendations