À propos du projet
# 📸 SnapshotTesting
Tests par instantanés Swift agréables. Cette bibliothèque permet d'écrire des tests par instantanés pour toute valeur, dans tout format, sur toute plateforme Swift. Elle prend en charge les vues, les contrôleurs de vue, les requêtes URL, les valeurs Encodable, et plus encore.
## Utilisation
Une fois installée, aucune configuration supplémentaire n'est requise. Importez le module `SnapshotTesting` et appelez la fonction `assertSnapshot`.
```swift
import SnapshotTesting
import Testing
@MainActor
struct MyViewControllerTests {
@Test func myViewController() {
let vc = MyViewController()
assertSnapshot(of: vc, as: .image)
}
}
```
Lorsqu'une assertion s'exécute pour la première fois, un instantané est automatiquement enregistré sur le disque et le test échoue, en affichant le chemin du fichier de la référence nouvellement enregistrée. Les exécutions suivantes du test chargent cette référence et la comparent à la valeur d'exécution. Les échecs peuvent être examinés depuis le Report Navigator de Xcode ou en inspectant les URL de fichiers.
Vous pouvez enregistrer de nouvelles références en personnalisant les instantanés en ligne ou en utilisant l'outil `withSnapshotTesting`.
## Instantanés de tout
Contrairement à la plupart des bibliothèques de tests par instantanés limitées aux `UIImage` de `UIView`, SnapshotTesting fonctionne avec tout format de toute valeur sur toute plateforme Swift. La fonction `assertSnapshot` accepte une valeur et toute stratégie d'instantané prise en charge par cette valeur.
Les tests de vues sont hautement configurables. Vous pouvez remplacer les collections de traits et générer des instantanés indépendants de l'appareil à partir d'un seul simulateur.
Les stratégies d'instantanés disponibles incluent :
- `.image` pour les vues et les contrôleurs de vue
- `.recursiveDescription` pour la représentation textuelle des hiérarchies de vues
- `.raw` pour les requêtes URL
- `.json` et `.plist` pour les valeurs `Encodable`
- `.dump` pour toute valeur via son miroir
## Fonctionnalités
- Des dizaines de stratégies d'instantanés
- Écrivez vos propres stratégies d'instantanés
- Aucune configuration requise
- Plus autonome : les nouveaux instantanés sont enregistrés automatiquement
- Sans sous-classe : assertion depuis n'importe quel cas XCTest ou spécification Quick
- Instantanés indépendants de l'appareil
- Prise en charge de premier ordre de Xcode avec les différences d'images comme pièces jointes XCTest
- Prend en charge toute plateforme prenant en charge Swift (iOS, Linux, macOS, tvOS)
- Prise en charge de SceneKit, SpriteKit et WebKit
- Prise en charge de `Codable`
- Intégration d'outils de diff personnalisés
## Installation
### Xcode
Ajoutez le paquet via Swift Packages, en vous assurant qu'il est ajouté à une cible de test.
### Swift Package Manager
Ajoutez le paquet comme dépendance dans `Package.swift` et ajoutez `SnapshotTesting` à votre cible de test.
## Plug-ins
Plusieurs plug-ins communautaires étendent les fonctionnalités, notamment les tests d'accessibilité, la simulation de daltonisme, les tests de migration de base de données SQLite, les matchers Nimble, les instantanés d'aperçu SwiftUI, les tests par instantanés HTML, et plus encore.
## Outils associés
Inspirée par `iOSSnapshotTestCase` et Jest, cette bibliothèque apporte les tests par instantanés généralisés à Swift avec une expérience utilisateur soignée.
## Licence
Publiée sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.