gpt4 book ai didi

java - PowerMockRunner 不应用 JUnit ClassRules

转载 作者:搜寻专家 更新时间:2023-11-01 02:39:04 29 4
gpt4 key购买 nike

我需要模拟一个类的静态方法并在我的测试中使用该模拟方法。现在看来我只能使用 PowerMock 来做到这一点。

我用@RunWith(PowerMockRunner.class) 注释类,并用适当的类注释@PrepareForTest。

在我的测试中,我有一个@ClassRule,但是在运行测试时,规则没有正确应用。

我能做什么?

    RunWith(PowerMockRunner.class)
@PowerMockIgnore({
"javax.xml.*",
"org.xml.*",
"org.w3c.*",
"javax.management.*"
})
@PrepareForTest(Request.class)
public class RoleTest {

@ClassRule
public static HibernateSessionRule sessionRule = new HibernateSessionRule(); // this Rule doesnt applied

最佳答案

解决此问题的另一种方法是使用 org.powermock.modules.junit4.PowerMockRunnerDelegate 注释:

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(BlockJUnit4ClassRunner.class)
@PowerMockIgnore({
"javax.xml.*",
"org.xml.*",
"org.w3c.*",
"javax.management.*"
})
@PrepareForTest(Request.class)
public class RoleTest {

@ClassRule
public static HibernateSessionRule sessionRule = new HibernateSessionRule(); // this Rule now applied

关于java - PowerMockRunner 不应用 JUnit ClassRules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38772027/

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