Powermock überprüft privaten statischen Methodenaufruf in nicht statischer Methode

Liebe Stackoverflow-Kameraden, ich habe wieder ein Problem damit, einen bestimmten PowerMock / Mockito-Fall zum Laufen zu bringen.Das Problem ist, dass ich den Aufruf einer privaten statischen Methode überprüfen muss, die von einer öffentlichen nicht statischen Methode aufgerufen wird. Ein ähnliches Beispiel habe ich zuvor auf gepostetWie unterdrücke und überprüfe ich private statische Methodenaufrufe?

Das ist mein Code:

class Factory {

        public String factorObject() throws Exception {
            String s = "Hello Mary Lou";
            checkString(s);
            return s;
        }

        private static void checkString(String s) throws Exception {
            throw new Exception();
        }
    }

Und das ist meine Testklasse:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Factory.class)
public class Tests extends TestCase {

    public void testFactory() throws Exception {

        Factory factory = mock(Factory.class);
        suppress(method(Factory.class, "checkString", String.class));
        String s = factory.factorObject();
        verifyPrivate(factory, times(8000)).invoke("checkString", anyString());
    }
}

Das Problem hierbei ist, dass der Test erfolgreich ist, es aber nicht sein sollte. Es sollte nicht so sein, dass die private statische Methode genau 1 Mal aufgerufen werden sollte. Aber egal welchen Wert ich in times () lege, es überprüft es immer als wahr ... halp :(

Antworten auf die Frage(1)

Ihre Antwort auf die Frage