J'ai une classe de générateur de nombres pseudo-aléatoires (PRNG) que je veux soumettre à des tests unitaires. Il existe deux approches :
- écrivez un scénario de test qui prend une grande quantité d'échantillons et testez s'ils sont correctement distribués. Cette approche peut conduire à un temps d'exécution assez long pour le scénario de test ;
- calculer une petite série d'échantillons "à la main" et vérifier si l'algorithme PRNG la reproduit. Cette approche peut conduire à la génération d'une séquence non aléatoire sans être remarquée ;
Je dirais que la première approche n'est pas vraiment un test unitaire car elle n'effectue pas un test boîte blanche du générateur, mais d'un autre côté elle teste correctement la responsabilité de la classe. La deuxième approche ressemble plus à un véritable test unitaire, en se concentrant sur l'algorithme, mais elle ne fournit pas autant de preuves pour savoir si la classe remplit sa responsabilité.
Quelle approche préférez-vous, et pourquoi ?