Quels tests dois-je utiliser pour tester un parseur csv?
J'ai un analyseur csv simple en C #, et je veux être sûr d'avoir une bonne couverture de test unitaire de tous les cas de bord communs (et rares). Quels tests dois-je utiliser pour identifier les problèmes potentiels et les cas limites?
Réponses:
Je viens de trouver https://github.com/maxogden/csv-spectrum :
la source
Voici quelques cas limites auxquels vous auriez dû réfléchir et avoir des cas de test.
,foo,
,"foo",
,"foo\nbar"
,"foo,bar"
,"foo""bar"
,,
devrait être nul et,"",
doit donner une chaîne vide.la source
Il n'y a pas de spécification formelle pour les fichiers CSV. Cependant, jetez un œil à RFC 4180 - Types de formats communs et MIME pour les fichiers CSV , (en particulier la section 2) qui documente le format qui semble être suivi par la plupart des implémentations.
Il semble assez simple de commencer à générer des cas de test à partir de la liste de la section 2, en particulier:
la source
Les données du recensement américain sont disponibles en CSV
J'y travaille depuis un moment. C'est certainement assez bizarre pour être un bon test, et il y en a des tonnes et des tonnes.
la source
Vérifiez ce répertoire et regardez le code dans les fichiers * .t:
http://cpansearch.perl.org/src/MAKAMAKA/Text-CSV-1.32/t/
(Le numéro de version -1.32 pourrait éventuellement changer afin que le lien devienne "mort". Incrémentez le numéro de version vous-même par essai et erreur, ou allez dans le répertoire parent ou cliquez ici
https://metacpan.org/pod/Text::CSV
et cliquez sur "Parcourir" pour accéder au code source de la dernière version)
Text :: CSV_XS est un module Perl mature pour l'analyse des fichiers CSV. Les fichiers * .t sont écrits en Perl 5, ils contiennent de nombreux cas de test pour l'auto-test du module, ils doivent être effectués au moment de l'installation du module.
la source