2016-08-26 38 views
6

我試圖嘲弄final類Powermock mockstatic不能繼承final類

PowerMockito.mockStatic(TestFinalClass.class); 

它是從我的日食工作,當我運行一個單一的JUnit和添加javaagent我VM參數

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

但是當我嘗試使用maven build命令從命令行運行所有測試用例時,我仍然在「無法繼承最終類」

以下是我的代碼片段,來自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> 

回答

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

這對我的作品。如果添加'PowerMockRunner'和'PrepareForTest'註釋,則不需要使用額外的vm參數。