XCTest pour Swift : guide complet avec exemples
1. Qu'est-ce que XCTest et pourquoi l'utiliser ?
XCTest est le framework standard de tests unitaires (unit testing) et de tests d'interface utilisateur (UI testing) pour les applications Apple, développé par Apple lui-même. Intégré directement dans Xcode, c'est l'outil principal pour vérifier la fiabilité du code en Swift et Objective-C. XCTest offre aux développeurs un ensemble d'API puissant et flexible pour écrire, organiser et exécuter des tests, allant de simples vérifications de fonctions individuelles à des tests d'intégration complexes et des tests d'interface utilisateur.
Pourquoi utiliser XCTest ? Dans le développement logiciel moderne, les tests ne sont pas un luxe, mais une nécessité. XCTest permet d'automatiser la vérification du code, ce qui est essentiel pour maintenir la qualité de votre application sur le long terme. Avec lui, vous pouvez :
- Détecter les régressions : Après avoir modifié votre code, lancez rapidement les tests pour vous assurer que les nouvelles fonctionnalités n'ont pas cassé les existantes.
- Documenter votre code : Des tests bien écrits servent de documentation vivante, montrant exactement comment chaque partie du système doit fonctionner.
- Améliorer l'architecture : Chercher à rendre le code testable conduit souvent à une architecture plus propre, modulaire et faiblement couplée.
- Accélérer le développement : Au lieu de lancer l'application manuellement et de répéter les mêmes actions, exécutez toute votre suite de tests en un clic.
XCTest est intégré à Xcode à tous les niveaux : de la création de cibles de test (test targets) à l'affichage des résultats dans des rapports clairs (Test Navigator). Il prend en charge l'exécution parallèle des tests, les tests de performance (performance testing) et les tests asynchrones, ce qui en fait une solution universelle pour des projets de toutes tailles.
2. Installation
XCTest ne s'installe pas via des gestionnaires de paquets comme pip ou npm. Il fait partie de l'écosystème Apple et est fourni avec Xcode. Aucune commande supplémentaire n'est nécessaire pour l'utiliser.
Pour commencer à écrire des tests, suivez ces étapes dans Xcode :
- Ouvrez votre projet.
- Dans le menu, choisissez File → New → Target.
- Dans la fenêtre qui apparaît, sélectionnez l'onglet Test, puis Unit Testing Bundle (ou UI Testing Bundle pour les tests d'interface).
- Cliquez sur Next, donnez un nom à votre cible (par exemple, "YourAppNameTests") et cliquez sur Finish.
Xcode créera automatiquement un fichier modèle dans lequel vous pourrez ajouter vos tests. Il n'est pas nécessaire d'importer XCTest dans votre code, car il est automatiquement lié à la cible de test.
Pour les projets utilisant Swift Package Manager (SPM), XCTest est également disponible sans étapes supplémentaires. Lorsque vous créez un paquet avec la commande swift package init --type executable ou --type library, SPM crée automatiquement un répertoire de test Tests avec les fichiers nécessaires.
3. Démarrage rapide — exemple minimal fonctionnel
Prenons un exemple simple. Imaginons que nous ayons une structure Calculator que nous souhaitons tester :
// Fichier : Sources/Calculator.swift
struct Calculator {
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
func subtract(_ a: Int, _ b: Int) -> Int {
return a - b
}
}
Créons maintenant un fichier de test (Xcode le créera automatiquement si vous avez suivi les instructions ci-dessus) :
// Fichier : Tests/MyProjectTests/CalculatorTests.swift
import XCTest
@testable import MyProject // Remplacez MyProject par le nom de votre module
final class CalculatorTests: XCTestCase {
func testAddition() {
// 1. Arrange (Préparation) Aussi dans la bibliothèque
Configuration d'applications en Go : bonnes pratiques et outils
Hyper pour Rust : guide complet avec exemples
Travailler avec les archives ZIP en TypeScript : la bibliothèque JSZip et les utilitaires
Envoi de SMS en Swift (iOS/macOS) : API MessageUI et services tiers
Envoi d'email en C++ : bibliothèques et exemples de code