it-swarm.com.de

Powermock mockstatic Kann die letzte Klasse nicht unterteilen

Ich versuche eine letzte Klasse zu verspotten

PowerMockito.mockStatic(TestFinalClass.class);

Es funktioniert von meiner Eclipse aus, wenn ich ein einzelnes junit ausführen und javaagent meinen VM - Argumenten hinzufügen

-javaagent:{path}/powermock-module-javaagent-1.6.4.jar

Aber wenn ich versuche, alle Testfälle von der Kommandozeile aus mit dem Befehl maven build auszuführen, bekomme ich immer noch die Endklasse "Subclass kann nicht".

Unten ist mein Ausschnitt aus pom.xml

            <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <argLine>-javaagent:{path}/powermock-module-javaagent-1.6.4.jar</argLine>
            </configuration>
        </plugin>
11
user3755282
package test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(FinalClass.class)
public class Tests {
    @Test
    public void test() {
    PowerMockito.mockStatic(FinalClass.class);
    }
}

Das funktioniert für mich. Wenn Sie die Anmerkungen "PowerMockRunner" und "PrepareForTest" hinzufügen, müssen Sie keine zusätzlichen VM-Argumente verwenden.

23
wprzechodzen
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(FinalClass.class)
public class TestFinalClass{

    @Test
    public void whenMockFinalClassMockWorks() {

        FinalClass finalklass = PowerMockito.mock(FinalClass.class);
    }
}
0
Halim