Teilweise Mock Private Methoden mit PowerMock-Mockito

Ich bin neu Mockito und PowerMock. Ich brauche zum testen von legacy-code, die über eine eigene Methode, die ich habe, zu verspotten. Ich bin am überlegen mit dem privaten teilweise spöttische Funktion von PowerMock, ich habe versucht, zu imitieren das Beispiel aus der link, aber es scheiterte. Ich habe keine Ahnung, was falsch mit es. Können Sie helfen, es zu überprüfen? Dank

Hier ist die Klasse zu-sein-getestet:

package test;

public class ClassWithPrivate
{

     private String getPrivateString() {
       return "PrivateString";
     }

     private String getPrivateStringWithArg(String s) {
       return "PrivateStringWithArg";
     }

 }

- Und Dies ist der Test-Code:

package test;

import static org.mockito.Mockito.*;
import static org.mockito.Matchers.anyString;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.powermock.api.support.membermodification.MemberMatcher.method;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.api.support.membermodification.MemberMatcher;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassWithPrivate.class)
public class ClassWithPrivateTest {

    @Test
    public void testGetPrivateString() {

         ClassWithPrivate spy = PowerMockito.spy(new ClassWithPrivate());

         PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());

    }

}

BEARBEITEN
Als ich versuchte, den code zu kompilieren, es ist mit dem folgenden Fehler:

ClassWithPrivateTest.java:26: unreported exception java.lang.Exception; must be caught or declared to be thrown
     PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());
                                     ^
ClassWithPrivateTest.java:26: unreported exception java.lang.Exception; must be caught or declared to be thrown
     PowerMockito.doReturn("Do").when(spy, method(ClassWithPrivate.class, "getPrivateStringWithArg", String.class)).withArguments(anyString());
  • Für mich der test funktioniert wie erwartet. Was meinst du mit "es ist fehlgeschlagen". Ist es eine Ausnahme, wenn Sie den test ausführen? Dann poste es hier.
  • hi, wenn ich es kompiliert, es gab mir Fehler, wie oben. Hast du es kompilieren erfolgreich? Dank
InformationsquelleAutor wlhee | 2013-07-18
Schreibe einen Kommentar