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:
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);
    }
}
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
 
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", "", "SŽbastien 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)
Quelqu'un voit d'où ça peut venir? Parce que moi je suis complètement largué.