2009-04-25 6 views
1

Utilisation de nUnit pour tester la sortie (mise en forme monétaire) pour une culture spécifique, mais nous obtenons le résultat suivant.Quelle est la différence entre ces deux chaînes?

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 a-t-il un caractère espace différent que nous pouvons mettre dans le résultat accepté pour faire passer le test? Par ailleurs, la culture testée est fr-FR. Editer: Merci Adam vous êtes sur place avec le caractère Unicode. Nous avons changé nos résultats attendus et maintenant chaque test Unit passe.

Répondre

5

Il est possible qu'ils soient de différents types d'espaces. Unicode a beaucoup de différents space characters. Jetez un oeil aux points de code à l'index 2 en convertissant les caractères en entiers pour obtenir votre réponse.

Modifier

En réponse à votre commentaire, point de code 160 est un non-breaking space. Vous pouvez enter it directly dans votre code source (par exemple Alt + 0160 sur le pavé numérique sous Windows), ou utiliser une séquence d'échappement:

// U+20AC is the Unicode code point for the euro sign 
string expected = "12\u00A0765,87 \u20AC"; 
+0

c'est le caractère 160 qui semble être un espace ... comment pouvons-nous l'incorporer dans notre résultat "attendu"? –

1

Très probablement, il est un personnage qui est vide, mais pas un espace pour éviter les étiquettes et tel pour casser le nombre dans deux quand le mot-emballage est permis.

Questions connexes