Je suis en train d'essayer de tester "unitairement" un service avec EasyMock 2.3. Avant je préférais toujours faire du testing basé sur l'état plutôt que sur le comportement, parce que je trouvais ça plus intuitif. Mais là j'ai voulu me forcer un peu et pour le coup, je reste sur ma faim.
Voici mon test unitaire:
En gros c'est assez simple, quand j'appelle register sur le server, il est censé créer un utilisateur. Et quand le test tourne, je me chope une IllegalStateException au niveau du EasyMock.replay():
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 package org.epseelon.myapp.business; import org.easymock.EasyMock; import org.epseelon.myapp.domain.UserDao; import org.junit.Before; import org.junit.Test; public class MyServiceTest { private MyServiceImpl server; private UserDao userDao; @Before public void init() { server = new MyServiceImpl(); userDao = EasyMock.createMock(UserDao.class); server.setUserDao(userDao); } @Test public void testRegister() { userDao.create("sarbogast", "password", "+000000000", "", "Sébastien Arbogast"); EasyMock.replay(userDao); server.register("sarbogast", "password", "+000000000", "", "Sébastien Arbogast"); EasyMock.verify(userDao); } }
Quelqu'un voit d'où ça peut venir? Parce que moi je suis complètement largué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 testRegister(org.epseelon.myapp.business.myappServerTest) Time elapsed: 0.059 sec <<< ERROR! java.lang.IllegalStateException: missing behavior definition for the preceeding method call create("sarbogast", "password", "+000000000", "", "Sbastien Arbogast") at org.easymock.internal.MocksControl.replay(MocksControl.java:72) at org.easymock.EasyMock.replay(EasyMock.java:1384) at org.epseelon.myapp.business.myappServerTest.testRegister(myappServerTest.java:26)
Partager