Quelle est la différence entre ces deux chaînes?
Question
Utilisation nUnit pour tester la sortie (mise en forme de monnaie) pour une culture spécifique, mais nous obtenons le résultat suivant.
Fail: Formatting currency amount
String lengths are both 11. Strings differ at index 2.
Expected: "12 765,87 €"
But was: "12 765,87 €"
-------------^
Nous ne pouvons pas voir la différence entre les chaînes. Notre résultat attendu utilise un caractère « espace ».
Y at-il un espace différent que nous pouvons mettre dans le résultat accepté pour obtenir le test de passer?
Par ailleurs, la culture est testée fr-FR.
Edit: Merci Adam vous êtes sur place avec le caractère unicode. Nous avons changé nos résultats attendus et maintenant chaque passes test unitaire.
La solution
Il est possible qu'ils sont différents types d'espaces. Unicode a beaucoup de différents . Jetez un oeil sur les points de code à l'index 2 en jetant les caractères entiers pour obtenir votre réponse.
Modifier
En réponse à votre commentaire, point de code 160 est un espace insécable . Vous pouvez y entrer directement dans votre code source (par exemple Alt + 0160 sur le pavé numérique sous Windows) ou d'utiliser une séquence d'échappement:
// U+20AC is the Unicode code point for the euro sign
string expected = "12\u00A0765,87 \u20AC";
Autres conseils
Très probablement, il est un personnage qui est vide, mais pas un espace pour éviter les étiquettes et comme pour briser le nombre en deux quand le mot-emballage est activé.