Les ressources publiques ciblent des modèles reproductibles. SDK, firmware et documents fabricant restreints restent dans leurs canaux approuvés.
Des preuves comparables avec méthode, version et limites.
- Une fonction de domaine qui consomme un événement de capture normalisé.
- Un framework de test déjà exécuté dans le projet.
- Une règle claire sur ce qui doit se passer en cas de valeurs en double, vides et invalides.
Norme de publication
Intégrer Android en entreprise avec des preuves versionnées.
Les ressources publiques ciblent des modèles reproductibles. SDK, firmware et documents fabricant restreints restent dans leurs canaux approuvés.
- 01
Dépend de votre port, pas de la classe de périphérique
Le flux de travail de réception doit connaître CaptureEvent et CapturePort. Il ne doit pas importer de gestionnaire de scanner, de constante de diffusion ou de type spécifique au modèle.
- 02
Émettre des événements déterministes
Donnez au faux adaptateur des méthodes explicites pour une analyse valide, une analyse en double, une valeur vide et un échec. Les tests deviennent lisibles lorsque l'entrée décrit le scénario de l'opérateur.
- 03
Affirmer les résultats commerciaux
Vérifiez les mouvements de stock, les messages de validation et la gestion des doublons. N'affirmez pas qu'un rappel fournisseur a été appelé à partir d'un test commercial ; qui appartient au test de l'adaptateur matériel.
- 04
Gardez le test matériel petit
Lorsqu'un appareil est disponible, effectuez un test de fumée ciblé pour l'ouverture, le déclenchement, le décodage et la fermeture. La suite de flux de travail plus vaste doit rester rapide et sans appareil.
Applications exemples / Kotlin
Modèles SDK et API
Double essai original. La publication est sûre car elle n'inclut pas de classe de fournisseur ou de binaire.
class FakeCapturePort : CapturePort {
private var listener: ((CaptureEvent) -> Unit)? = null
override fun open() = Unit
override fun start() = Unit
override fun stop() = Unit
override fun close() = Unit
override fun setListener(listener: (CaptureEvent) -> Unit) {
this.listener = listener
}
fun emit(value: String, symbology: String? = "test") {
listener?.invoke(CaptureEvent(value, symbology, Instant.now()))
}
}
@Test
fun receiving_a_valid_barcode_updates_stock() {
val scanner = FakeCapturePort()
val workflow = ReceivingWorkflow(scanner)
workflow.start()
scanner.emit("SKU-001")
assertEquals(ReceivingState.Accepted("SKU-001"), workflow.state)
}Distribution des SDK
Contrôle de publication
Aucun binaire fournisseur, référence d'API, firmware ou exemple de code source n'est publié sans autorisation de redistribution et périmètre pris en charge enregistrés.
Déplacez la configuration matérielle dans un petit test de fumée d'adaptateur et conservez les règles de domaine sur le faux port.
Ajoutez un événement en double explicite et affirmez la transition d'état une fois.
Rejetez à la limite de normalisation et exposez un état récupérable par l'utilisateur.
États de preuve
Des preuves comparables avec méthode, version et limites.
- 01
Exécutez les faux tests d'adaptateur sur chaque build CI.
- 02
Couvre les cas valides, vides, en double, surdimensionnés et en cas d'échec de transport.
- 03
Conservez l’adaptateur spécifique au périphérique derrière une limite de package.
- 04
Exécutez un test de fumée sur les appareils physiques séparément pour chaque référence approuvée.
Ressources
Modèles SDK et API
Aucun binaire fournisseur, référence d'API, firmware ou exemple de code source n'est publié sans autorisation de redistribution et périmètre pris en charge enregistrés.