lundi 1 février 2016

Mockito and interface event

I am writing an integration test using mockito. The unit under test is connected to a mocked object (objA) through an interface. The functionality that I am trying to mimic happens when the mocked objected fires an event and the unit under test is listening to it.

The interface:

public interface MyInterfaceAPI{
   void fireyMyEvent(String msg);
}

The unit under test:

public class UnitUnderTest{

    ObjA objA = new ObjA();

    public UnitUnderTest() {
         objA.addMyListener(new addMyHandler()); 
    }

    class addMyHandler implements MyInterfaceAPI{
       @Override
       public void fireyMyEvent(String msg) {
             System.out.println(msg);
       };
    };
};

The test:

 public class MyTest {

     @org.junit.Test
     public void run() {

         ObjA  mockObjA = mock(ObjA .class);    
         UnitUnderTest spyController = Mockito.spy(new UnitUnderTest());

         MyInterfaceAPI mo2uut= mock(MyInterfaceAPI.class);
         mo2uut.fireyMyEvent("hello from test"); 
     }
 }

My question is in the test, how do I connect the mo2uut ('mocked object' to 'unit under test') to the addMyHandler class implementation of MyInterfaceAPI inside the UnitUnderTest?

I am clearly missing something, but I am not sure what.

Aucun commentaire:

Enregistrer un commentaire