Самый простой ответ, который я бы использовал, - отключить функцию отправки сообщений. Например, если у вас есть это:
public class SomeClass {
public void doit() {
//do some stuff
sendMessage( /*some parameters*/);
}
public void sendMessage( /*some parameters*/ ) {
//jms stuff
}
}
Тогда я бы написал тест, который затемняет поведение sendMessage. Например:
@Test
public void testRealWorkWithoutSendingMessage() {
SomeClass thing = new SomeClass() {
@Override
public void sendMessage( /*some parameters*/ ) { /*do nothing*/ }
}
thing.doit();
assertThat( "Good stuff happened", x, is( y ) );
}
Если объем кода, который заглушается или скрывается, значителен, я бы не использовал анонимный внутренний класс, а просто "нормальный" внутренний класс.