Wie verwende ich Powermock die Whitebox.invokeMethod(Object Instanz, Object... arguments), als meine erste parameter der Methode ist der String-Typ?

Möchte ich nicht explizit den Namen der Methode, die ich bin-Anrufung in der invokeMethod() Argumente. Powermock bietet eine überladene invokeMethod() folgert, dass die Methode basierend auf den übergebenen Parametern.

invokeMethod(Object instance, Object... arguments)

Das problem, das ich laufen werde ist, dass meine erste parameter ist der Typ String. Dies ruft die invokeMethod() mit der Unterschrift,

invokeMethod(Object instance, String methodToExecute, Object... arguments)

Hier ist ein Modell der test...

@Test
public void thisIsATest() throws Exception{
    TheClassBeingTested myClassInstance = new TheClassBeingTested();
    String expected = "60";
    String firstArgument = "123A48"; 

    ReturnType returnedTypeValue = Whitebox.invokeMethod(myClassInstance, firstArgument, AnEnum.TypeA);
    String actual = returnedTypeValue.getTestedField();
    assertEquals("Expected should be actual when AnEnum is TypeA", expected, actual);
}

Dieser gibt mir die Fehlermeldung,

org.powermock.reflect.exceptions.MethodNotFoundException: No method found with name '123A48' with parameter types: [ AnEnum ] in class TheClassBeingTested.`

Ich habe es zu arbeiten, ändern Sie den ersten parameter den Typ Object, aber das fühlt sich schmutzig zu mir.

@Test
public void thisIsATest() throws Exception{
    TheClassBeingTested myClassInstance = new TheClassBeingTested();
    String expected = "60";
    Object firstArgument = "123A48"; 

    ReturnType returnedTypeValue = Whitebox.invokeMethod(myClassInstance, firstArgument, AnEnum.TypeA);
    String actual = returnedTypeValue.getTestedField();
    assertEquals("Expected should be actual when AnEnum is TypeA", expected, actual);
}

Gibt es eine richtige Weg, um pass ein String Typ wie das erste argument, während nicht schwer Codierung mein name der Methode in der invokeMethod() nennen? Ich habe nichts gefunden in der Powermock-Dokumentation oder in Foren, die Auseinandersetzung mit diesem, aber es ist sicherlich nicht alles, was ungewöhnlich ist.

InformationsquelleAutor pluralMonad | 2015-09-24
Schreibe einen Kommentar