gpt4 book ai didi

java - testng 和 PowerMockito : class not prepared exception

转载 作者:行者123 更新时间:2023-12-02 00:35:34 25 4
gpt4 key购买 nike

我正在尝试在静态类上编写单元测试。我实际上想验证该类上的方法是否被调用。

@Guice(modules = testModule.class)
@PrepareForTest(ServiceRunnerBase.class)
@PowerMockIgnore("javax.management.*")
public class RunnerTest extends PowerMockTestCase {

@BeforeMethod
public void setUp() {
PowerMockito.mockStatic(ServiceRunnerBase.class);
}

@Test
public void testStopCallsReleaseLock() {
// I will add code here when I get the powerMockito mockStatic to work.
}
}

我的测试可以编译,但是当我运行它时,出现此异常:

    org.powermock.api.mockito.ClassNotPreparedException: 

[Ljava.lang.Object;@2fb38899
The class ServiceRunnerBase not prepared for test.

但是,我的类位于 @PrepareForTest 注释中。我的类 ServiceRunnerBase 是一个抽象类,但它定义了几个静态方法。我无法更改 ServiceRunnerBase

ServiceRunnerBase 是一个抽象类,具有以下内容(我无法发布代码,它是专有的)

  • 私有(private)静态成员,部分标有@Getter
  • 静态方法,一些是私有(private)的,一些是 protected ,一些是公共(public)的
  • 我试图验证我的代码正在调用的方法是
    • protected 静态无效释放(字符串调用类,最终 boolean 成功)

我在使用 PowerMockito 时做错了什么?

最佳答案

这是我对抽象类的测试和配置,并且工作正常。如果您有不同的 powermock 版本,请告诉我

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>

生产等级

public abstract class SR {
protected static void release() {

}
}

测试类

import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.testng.PowerMockTestCase;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.SR;

@PrepareForTest(SR.class)
public class TSR extends PowerMockTestCase {

@BeforeMethod
public void setUp() {
PowerMockito.mockStatic(SR.class);
}

@Test
public void testStopCallsReleaseLock() {
// I will add code here when I get the powerMockito mockStatic to work.
}
}

关于java - testng 和 PowerMockito : class not prepared exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57979643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com