Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模拟具有静态方法的类时发生异常_Java_Unit Testing_Mockito_Powermock - Fatal编程技术网

Java 模拟具有静态方法的类时发生异常

Java 模拟具有静态方法的类时发生异常,java,unit-testing,mockito,powermock,Java,Unit Testing,Mockito,Powermock,我正在为静态方法编写单元测试(使用TestNG)。当模拟静态方法的类时,我得到一个异常 @RunWith(PowerMockRunner.class) @PrepareForTest(TempClass.class) public class MyTestClass { @Test public void testMethodt() { PowerMockito.mockStatic(TempClass.class); } } public class TempClass

我正在为静态方法编写单元测试(使用TestNG)。当模拟静态方法的类时,我得到一个异常

@RunWith(PowerMockRunner.class)
@PrepareForTest(TempClass.class)
public class MyTestClass {

  @Test
  public void testMethodt() {
    PowerMockito.mockStatic(TempClass.class);
  }
}

public class TempClass {

  public static String getName(String name){
    return "Hi " + name;
  }
}
当执行
PowerMockito.mockStatic(TempClass.class)时我遇到以下异常

org.powermock.api.mockito.ClassNotPreparedException: 

[Ljava.lang.Object;@65466a6a
The class com.test.TempClass not prepared for test

对此有何解决方案?

通过添加以下内容修复了此问题

@PrepareForTest(TempClass.class)
public class MyTestClass extends PowerMockTestCase {
   ....
}

注意Java命名约定。类名应该以大写字符开头什么是
com.aexitest.data.testClass
?你在使用那个模拟吗?你配置了模拟吗?@Jens,这是一个有静态方法要测试的类。testClass编辑为TempClass@Amad安,你指的是什么配置?提示:所有这些都有很好的文档记录,以前在这里被问过很多次。有时,你只需做一点研究,而不是在这里重复第十次同样的问题,速度就会快得多;-)