views:

1631

answers:

2

How to make mock void methods.I performed observer pattern but i cant mock with mockito because i dont know the mock way with mockito.And i search from the internet i cant find properly sample. My class looks like

public class World{

List<Listener> listeners;
void addListener(Listener item)
{
listeners.add(item);
}
void doAction(Action goal,Object obj){
setState("i received");
goal.doAction(obj);
setState("i finished");
}
private string state;
//setter getter state
}
} 

public class WorldTest implements Listener{

@Test public void word{
World  w= mock(World.class);
w.addListener(this);
...
...

}
}
interface Listener{
void doAction();
}

The system are not triggered with mock. =( I want to show abovementioned system state. and i make assertion according to them. Pls show me some way for solving this problem...

+3  A: 
sateesh
Isn't it more appropriate to parameterize your Answer as <Void> when the return type is void?
qualidafial
@qualidafial:Yeah, I think parameterization to Void would be better as it better conveys that I am not interested in the return type. I wasn't aware of this construct, thanks for pointing it out.
sateesh
+3  A: 

the solution of so-called problem is to use Mockito.spy(...) instead of Mockito.mock(..) spy enables us to partial mocking.Mockito is good at this matter.Because you have class which is not complete,in this way you mock some required place in this class. later u can change easly and harmless.

ibrahimyilmaz