Bonjour,

J'ai rencontré un problème inattendu dans le test unitaire suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    @Test
    public void test() {
        NumberFormat nf = NumberFormat.getInstance();
        Assert.assertEquals("5 000", nf.format(5000));
    }
Lorsqu'on lit le code précédent (et lorsqu'on l'écrit), on peut penser que le test passe sans problème.
En réalité, il ne marche pas.

Après une recherche approfondie, je me suis aperçu que NumberFormat utilise une espace insécable (code #160).

Voici le code du test corrigé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
    @Test
    public void test() {
        char espace = new DecimalFormatSymbols().getGroupingSeparator();
        NumberFormat nf = NumberFormat.getInstance();
        Assert.assertEquals("5" + espace + "000", nf.format(5000));
    }
Je pense qu'il serait utile de rajouter dans la réponse à la question Comment convertir un nombre en chaine formatée que le séparateur de milliers dans la langue française est l'espace insécable.

A+
Gronono

EDIT : On dit une espace.