Bonjour,

Je travaille sur le framework play! pour développer un projet.
J'aimerais arriver à un code coverage de 80%
Mon problème est que j'ai plusieurs fonctions de type void qui n'ont pas de valeur de retour.
Par exemple j'ai une fonction d’envois de mail dans un helper de type void. Elle est appelé par un contrôleur au moment où l'utilisateur clic sur le bouton "envoyer mail".
Elle a plusieurs paramètres (String email, String object, String message).
J'aimerais tester les valeurs des String par exemple et ensuite le fait que le mail soit bien envoyé.
Mais je ne sais pas comment connaître la valeur du String qui est dans ma fonction pour ensuite le comparer avec un assert? Je ne sais pas si je suis clair?

J'ai également un problème pour couvrir les try / catch.
Voici un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Test
    public void encodeURLTest() throws UnsupportedEncodingException{
    	String test = "test";
    	String s1 =StringEscapeUtils.escapeJava(test);
    	String s = User.encodeURL(test);
    	String result = URLEncoder.encode(s1, "UTF-8");
    	assertEquals(result, s); 
    }
 
    @Test
    public void encodeUrlWithException() {
        try {
            String test = "test";
            User.encodeURL(test);
            Assert.fail("maMethod devrait lancer une exception");
        } catch (Exception e) {
            // Rien dans le catch puisque c'est le comportement attendu.
        }
    }
Quand je génère le rapport, le catch n'est pas couvert par les tests. Normalement le deuxième test sert à tester la fonction avec une exception non?

Merci pour votre aide!

Edit:
Je pense que ce qu'il me manquait c'est de générer une erreur ...
Ma fonction attend un String pour l'encoder. J'ai donc passer une String null. J'ai bien mis le assert dans ma fonction. Le test passe donc mon exception est bien générée. Mais le code coverage ne change toujours pas :/
Le % n'augmente pas et le code coverage me dit que le catch n'est pas couvert.