Bonjour,
je tente de faire un test sur une classe, malheureusement lorsque je veux vérifier la couverture, tous mes tests échouent (dans le setUp si j'ai bien compris, en revanche je ne sais pas pourquoi...en espérant que vous puissiez m'indiquer).
Le code de la classe à tester (que l'on m'a fourni donc je suppose qu'il n'y a pas d'erreur de ce coté là).
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 package geco; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * Classe de service permettant la gestion des login */ public class LoginService { private ArrayList<String> loginsExistants; /** * Construit un login service a partir de la liste des logins existants * @param testListe */ public LoginService(String[] testListe) { this.loginsExistants = new ArrayList<String>((loginsExistants)); Collections.sort(this.loginsExistants); } /** * Verifie si un login existe deja * * @param login le login a verifier * @return true si le login existe deja, false sinon */ public boolean loginExists(String login) { return loginsExistants.contains(login); } /** * Ajoute un login a la liste des logins existants * @param login le login a ajouter */ public void addLogin(String login) { loginsExistants.add(login); } /** * Recherche tous les logins commençant par un meme prefixe * * @param pref le prefixe * @return la liste des logins prefixes par <em>pref</em> */ public List<String> findAllLoginsStartingWith(String pref) { ArrayList<String> loginsPrefixes = new ArrayList<String>(); for (String login: loginsExistants) { if (login.startsWith(pref)) { loginsPrefixes.add(login); } } return loginsPrefixes; } /** * Recherche tous les logins * * @return la liste de tous les logins */ public List<String> findAllLogins() { return loginsExistants; } }
Le code de la classe de test que j'ai fais et qui ne passe pas
Et si je vais voir dans le fichier les erreurs que j'obtiens sont reportées; je comprends qu'il y a un problème dans ma méthode setUp au niveau de l'array list, mais je ne vois pas où...
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 package geco; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import static org.junit.Assert.assertEquals; public class LoginServiceTest { LoginService l; @Before public void setUp() throws Exception { l = new LoginService(new String[] {"test"}); } @Test public void testLoginExists() throws Exception { assertEquals(true,l.loginExists("test")); } @Test public void testAddLogin() throws Exception { l.addLogin("toto"); assertEquals(true,l.loginExists("toto")); } @Test public void testFindAllLoginsStartingWith() throws Exception { l.addLogin("toto"); l.addLogin("tonton"); l.addLogin("titi"); ArrayList<String> listeAttendu=new ArrayList<String>(); listeAttendu.add("toto"); listeAttendu.add("tata"); assertEquals(true,listeAttendu==l.findAllLoginsStartingWith("to")); } @Test public void testFindAllLogins() throws Exception { ArrayList<String> listeAttendu=new ArrayList<String>(); listeAttendu.add("test"); assertEquals(true,listeAttendu==l.findAllLogins()); } }
Je n'ai mis qu'une erreur ici, mais j'ai le même speech pour toutes les méthodes testées !-------------------------------------------------------------------------------
Test set: geco.LoginServiceTest
-------------------------------------------------------------------------------
Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.031 sec <<< FAILURE!
testAddLogin(geco.LoginServiceTest) Time elapsed: 0 sec <<< ERROR!
java.lang.NullPointerException
at java.util.ArrayList.<init>(ArrayList.java:177)
at geco.LoginService.<init>(LoginService.java:23)
at geco.LoginServiceTest.setUp(LoginServiceTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Merci pour votre aide !
Partager