Pourquoi le test n'est pas qu'une « case à cocher », mais votre bouée de sauvetage
\n\nImaginez : 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\nDans 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\nQu'est-ce que le test en Swift et pourquoi en a-t-on besoin
\n\nLe 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\nVoici 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
Pour les débutants, le test iOS peut sembler complexe, mais en réalité, le premier pas se fait en 5 minutes.
\n\nConfiguration de l'environnement : premier test en 5 minutes
\n\nOuvrez 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
Si le projet existe déjà, ajoutez une cible de test manuellement : File → New → Target → iOS Unit Testing Bundle.
\n\nMaintenant, cliquez sur le fichier YourAppTests.swift. Vous verrez une ébauche de classe héritée de XCTestCase. Supprimez tout et écrivez votre premier test :
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\nCliquez 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.
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.
Tests unitaires : vérifions la logique de l'application
\n\nLes tests unitaires sont la base. Ils vérifient des fonctions, méthodes ou classes individuelles. Écrivons un test pour une simple calculatrice.
\n\nCréation du code à tester
\n\nAjoutez un nouveau fichier Swift à la cible principale (pas dans les tests !) avec la classe :
\n\nimport 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\nDans le fichier de test (rappel : il est dans le groupe YourAppTests), écrivons :
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()