Я не могу найти никакой документации, в которой конкретно упоминается шпион объекта потока с помощью mockito. Но я проверил, используя следующий код (с mockito 1.8.5):
@Test
public void testThread() throws InterruptedException
{
Thread threada = spy( new Thread( new Runnable()
{
@Override
public void run()
{
System.out.println( "on thread" );
}
} ) );
threada.start();
//threada.join();
System.out.println( "finished test" );
}
«В потоке» не распечатывается, если я вставлю threada.join (), я получил исключение:
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "Thread-1"
finished test
Если я удалю «spy ()», я получу оба отпечатка («без резьбы» и «законченный тест»), и исключений нет. Почему я не могу шпионить за объектом Thread?