J'ai un bloc de code qui ressemble à ceci:Remplacer les nouvelles lignes par " n" et doit-il être testable à l'unité?
String myJsonString = mapper.writeValueAsString(object).replaceAll("(\\r|\\n|\\r\\n)+", "\\\\n") + "\n";
Maintenant, ce code vit dans un bloc « appelable » - et en tant que tel, ne sert à rien en ce qui concerne les tests unitaires.
Je sais que je pourrais faire quelque chose dans le sens de tirer l'expression rationnelle dans une classe de modèle ... et puis faire correspondre de cette façon - mais je voulais obtenir des commentaires concernant la meilleure pratique ici - Je n'ai pas autant d'essais unitaires que je voudrais faire, et je sais qu'il y a toujours de meilleurs moyens de faire ces choses.
Le bloc réel de code, pour une meilleure référence
Callable<Boolean> doStuff = new Callable<Boolean>() {
public Boolean call() throws Exception {
String json = mapper.writeValueAsString(object).replaceAll("(\\r|\\n|\\r\\n)+", "\\\\n") + "\n";
// TODO : Add functionality which adds this string to a list.
return true;
}
};
Pourriez-vous partager un peu plus de contexte? L '"unité" testée unitairement est généralement une méthode entière. Est-ce une méthode en soi? Est-ce que cela fait partie d'une plus grande fonctionnalité? – Mureinik
Hey @Mureinik, j'ai ajouté le code ci-dessus dans la question - Je n'ai pas besoin d'aide avec la partie TODO, où je vais l'ajouter à la liste, j'ai juste besoin de savoir comment je pourrais tester le remplacement code, avec le regex etc ... comment je pourrais décomposer cela en classe et être capable de le tester, par exemple. – MickeyThreeSheds
Pensez à utiliser '\\ R', introduit avec Java 8 et signifiant« toute nouvelle séquence de lignes dans n'importe quel système d'exploitation »comme regex. – Bohemian