possibly a future enhancement, but seeing the need to call add explicitly made me think of some other options:

1) we could add bind/unbind methods to this base test class and encapsulate the details there - both the messageBus.bind/unbind calls as well as the queue/topic tracking

2) we could add a messageBus() method that still calls the abstract getMessageBus (only the first time) but wraps it in a proxy that tracks queues/topics by decorating the bind/unbind methods of the actual MessageBus instance returned by those subclass methods