2016-08-26 30 views
6

Próbuję mock końcowej klasaPowermock mockstatic Nie można podklasy ostateczną klasę

PowerMockito.mockStatic(TestFinalClass.class); 

Pracuje z moim zaćmienie kiedy uruchomić pojedynczy JUnit i dodać javaagent do moich argumentów VM

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

Ale gdy próbuję uruchomić wszystkie przypadki testowe z wiersza poleceń przy użyciu polecenia komendy maven, nadal otrzymuję komunikat "Nie można klasy podklasy końcowej"

Poniżej znajduje się mój fragment z 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> 

Odpowiedz

14
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); 
    } 
} 

Działa to dla mnie. Jeśli dodasz adnotacje "PowerMockRunner" i "PrepareForTest", nie będziesz musiał używać dodatkowych argumentów vm.