Welche Tests sollte ich verwenden, um einen CSV-Parser nach dem Unit-Test zu testen?
Ich habe einen einfachen csv-Parser in C #, und ich möchte sichergehen, dass ich eine gute Einheitentestabdeckung für alle gängigen (und seltenen) Edge-Fälle habe. Welche Tests sollte ich verwenden, um mögliche Probleme und Grenzfälle zu identifizieren?
Antworten:
Ich habe gerade https://github.com/maxogden/csv-spectrum gefunden :
quelle
Hier sind ein paar Grenzfälle, die Sie durchdacht haben sollten und für die Sie Testfälle haben sollten.
,foo,
,"foo",
,"foo\nbar"
,"foo,bar"
,"foo""bar"
,,
sollten Sie eine Null sein und,"",
eine leere Zeichenfolge angeben.quelle
Es gibt keine formale Spezifikation für CSV-Dateien. Schauen Sie sich jedoch RFC 4180 - Allgemeines Format und MIME-Typen für CSV-Dateien an (insbesondere Abschnitt 2), in dem das Format dokumentiert ist, dem die meisten Implementierungen zu folgen scheinen.
Es scheint ziemlich einfach, einige Testfälle aus der Liste in Abschnitt 2 zu generieren, insbesondere:
quelle
Die US-Volkszählungsdaten sind in CSV verfügbar
Ich habe eine Weile daran gearbeitet. Es ist sicherlich komisch genug, um ein guter Test zu sein, und es gibt Unmengen davon.
quelle
Checken Sie dieses Verzeichnis aus und sehen Sie sich den Code in den * .t-Dateien an:
http://cpansearch.perl.org/src/MAKAMAKA/Text-CSV-1.32/t/
(Die Versionsnummer -1.32 kann sich eventuell ändern, sodass der Link "tot" wird. Erhöhen Sie die Versionsnummer selbst durch Ausprobieren oder wechseln Sie in das übergeordnete Verzeichnis oder klicken Sie hier
https://metacpan.org/pod/Text::CSV
und klicken Sie sich über "Durchsuchen" zum Quellcode der neuesten Version durch)
Text :: CSV_XS ist ein ausgereiftes Perl-Modul zum Parsen von CSV-Dateien. Die * .t-Dateien sind in Perl 5 geschrieben und enthalten viele Testfälle zum Selbsttest des Moduls. Sie müssen bei der Installation des Moduls durchgeführt werden.
quelle