mardi 5 avril 2016

How to unit test event firing?

Suppose I have an object, that should fire some event on some operation?

How would I test it?

I can add listener to it, but the code of listener will be separated from testing.

final ArrayList<MyEvent> eventsFired = new ArrayList<>();
myObject.addMyEventListener(new MyEventListener() {
   public void myEventHappened(MyEvent evt) {
      eventsFired.add(evt);
   }
});
result = myObject.runOperation();
assert(result, ...);
assert(eventsFired.size(), ...); // is by one grater than before operation
assert(eventsFired.get(eventdFired.size()-1_, ...) // is correct

How to get them in one place?

Aucun commentaire:

Enregistrer un commentaire