Поскольку ваш объект haldler в тестовом методе является фиктивным, а не реальным объектом, вызов метода handler.run (str) ничего не будет делать, пока вы не скажете ему, что делать.
Таким образом, решение состоит в том, чтобы сказать фиктивному объекту вызвать реальный метод, подобный этому:
public class HandlerTest {
@Test
public void testRun() {
StringBuilder str = new StringBuilder("1234");
Handler handler = Mockito.mock(Handler.class);
when(handler.run(any(StringBuilder.class))).thenCallRealMethod();
handler.run(str);
Assert.assertEquals("34", str.toString());//add toString here, because you are comparing a String to a StringBuilder
}
}
Другим способом тестирования этого метода было бы сделать его статичным, чтобы вам даже не нужно было что-то издеваться:
public class Handler {
public Handler(BigInteger sessiongId) {
//...
}
public static void run(StringBuilder str) {
str.delete(0, 2);
}
}
И ваш метод теста будет выглядеть так:
public class HandlerTest {
@Test
public void testRun() {
StringBuilder str = new StringBuilder("1234");
Handler.run(str);
Assert.assertEquals("34", str.toString());
}
}