Skip to content

Tests du client de bureau ​

Tests unitaires du client WPF : activation de licence, empreinte matérielle, détection de débogueur et résolution de l'hôte virtuel WebView2. 5 fichiers, 22 méthodes de test.

TechnologiexUnit, FluentAssertions, Moq
Ciblenet9.0-windows, comme le client
Référence projetdotnet/client

Structure ​

FichierMéthodesCe qu'il éprouve
Licensing/LicenseCheckerTests.cs5Un texte illisible est rapporté comme malformé sans lever ; une signature nue sans préfixe est rapportée comme format hérité ; un texte vide est rejeté ; la demande d'activation décrit bien cette machine et ce produit ; la validation ne lève jamais, quoi qui soit installé
Licensing/LicenseIsBrandIndependentTests.cs3Les chemins de licence dépendent de l'application et non de la marque ; l'empreinte est stable d'une marque à l'autre ; le contenu d'une licence ne porte aucun champ de marque
Licensing/HardwareInfoTests.cs7Valeur non vide, stable d'un appel à l'autre, longue de 64 caractères hexadécimaux, ne levant jamais, sûre en accès concurrent
Licensing/SecurityVerifierTests.cs4Exécution sans débogueur attaché, appels successifs, structure statique de la classe
VirtualHostTests.cs3L'URL de démarrage pointe sur l'hôte mappé, désigne la page d'entrée de l'application, et la racine locale se trouve à côté de l'exécutable

Exécution ​

powershell
dotnet test dotnet/tests/client/client.tests.csproj

Mécanismes non évidents ​

L'empreinte fait 64 caractères, pas 16 ​

HardwareInfo rend le condensé SHA-256 complet, soit 256 bits. Les tests vérifient explicitement cette longueur et l'alphabet hexadécimal.

Ces tests n'émettent aucune licence ​

LicenseCheckerTests n'éprouve que le refus : texte illisible, format hérité, texte vide. Aucune licence valide n'est fabriquée ici, faute de clé privée — la chaîne complète d'émission et de vérification est éprouvée dans dotnet/tests/tools, avec une paire RSA éphémère.

Deux tests de SecurityVerifier sortent d'eux-mêmes sous débogueur ​

EnsureSecureEnvironment termine le processus lorsqu'un débogueur est attaché : les deux tests qui l'appellent commencent donc par un return conditionné à Debugger.IsAttached. Ils sont alors rapportés comme réussis, sans avoir rien éprouvé.

Contraintes actives ​

ContrainteConséquence si elle est ignorée
HardwareInfo passe par WMICes tests ne valent que sur Windows ; l'intégration continue les exécute sur son agent Windows
Le projet cible net9.0-windowsIl ne se compile pas sur les agents Ubuntu

Documentation Technique