Calculatrice de chaînes
Un calculateur de chaînes simple utilisant TDD Kata
But
Apprenez à utiliser le développement piloté par les tests pour créer un programme.
Description
Ce kata a été créé par Roy Osherove et est conçu pour vous aider à apprendre le codage et le refactoring TDD.
Essayez de ne pas lire à l’avance – effectuez une tâche à la fois. Travaillez progressivement.
Étapes des Katas
- Créez une calculatrice de chaîne avec une méthode int Add (numéros de chaîne)
- La méthode peut prendre 0, 1 ou 2 nombres et renverra leur somme.
- Une chaîne vide renverra 0.
- Exemples d'entrées :
“”, “1”, or “1,2”
- Commencez par le cas de test le plus simple d’une chaîne vide. Puis 1 numéro. Puis 2 chiffres.
- N'oubliez pas de résoudre les problèmes aussi simplement que possible, en vous forçant à écrire des tests pour des choses auxquelles vous n'aviez pas pensé.
- N'oubliez pas de refactoriser après chaque test réussi.
- Autorisez la méthode Add à gérer un nombre inconnu d’arguments/nombres.
- Autorisez la méthode Add à gérer les nouvelles lignes entre les nombres (au lieu des virgules).
- Exemple :
“1n2,3”
doit renvoyer 6. - Exemple :
“1,n”
n'est pas valide, mais vous n'avez pas besoin de test dans ce cas. - Testez uniquement les entrées correctes – il n’est pas nécessaire de traiter des entrées invalides pour ce kata.
- Appeler Add avec un nombre négatif lèvera une exception « Négatifs non autorisés : » répertoriant tous les nombres négatifs qui figuraient dans la liste des nombres.
- L'exemple
“-1,2”
lance "Négatifs non autorisés : -1" - Exemple
“2,-4,3,-5”
lance « Négatifs non autorisés : -4,-5 »
- Les nombres supérieurs à 1 000 doivent être ignorés.
- Exemple :
“1001,2”
renvoie 2
- Autorisez la méthode Add à gérer un délimiteur différent :
- Pour changer le délimiteur, le début de la chaîne contiendra une ligne distincte qui ressemble à ceci :
“//[delimiter]n[numbers]”
- Exemple :
“//;n1;2”
doit renvoyer 3 (le délimiteur est ;) - Cette première ligne est facultative ; tous les scénarios existants (utilisant , ou n) devraient fonctionner comme avant.