我需要模拟一个类的静态方法,并在测试中使用该模拟方法。现在看来我只能用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
我查了PowerMock代码。看来PowerMockRunner
不支持@classrule
。您可以尝试将HibernateSessionRule
用作@Rule
而不是@ClassRule
。
@PrepareForTest(Request.class)
public class RoleTest {
@Rule
public HibernateSessionRule sessionRule = new HibernateSessionRule();
问题内容: 我有一个基于Gradle的Java项目,现在我想使用PowerMock模拟一个私有方法。问题是我无法使用PowerMockRunner,因为添加注释时总是会收到以下异常。 错误: 这是我的测试依赖项: 完全为空(初始化错误)时,测试本身也会失败: 任何想法可能有什么问题吗?使用PowerMock的其他测试运行正常(没有一个使用PowerMockRunner)。 问候和感谢您的任何帮助!
我有3个测试类如下: 包裹通讯。朱尼特。测试用例; Test3类: Test2类: Test1类: 和一个TestSuite类: 问题是它在从eclipse从JUnit运行TestSuite1类时忽略了Test3类中的@规则标签,因此输出不如预期。为什么它忽略了@规则标签。有没有其他选择来执行所有三种情况?
我明白,,
我正在使用Mockito+PowerMock+PowerRule开发Junits 参考我前面的问题:使用Mockito在Junit中使用PowerMock和PowerRule获取未找到的javassist 现在我的JUnit已经成功地工作了,但我却遇到了一个奇怪的问题,Eclipse调试器无法工作,即尽管我的测试正在执行(用SOP语句检查),但我没有停止在断点上 现在,当我从Junits中删除Po
当我尝试用PowerMock和Mockito测试一个方法并模拟它的依赖关系时遇到了问题。我尝试将依赖关系方法转换为非静态方法,并使用@mock注释和@injectmocks,但没有任何结果。 下面是正在测试的类和方法: 这里有一个我想要嘲弄的依赖关系,我很难嘲弄它: 最后,但不是最不重要的是,使用失败的测试方法的测试类。我不得不说,它甚至没有到达assert方法调用,而是在when().ThenR
在JUnit 4.10及更低版本中,可以将规则注释为@规则和@ClassRur。这意味着规则会在类之前/之后以及每次测试之前/之后被调用。这样做的一个可能原因是设置一个昂贵的外部资源(通过@ClassRur调用),然后廉价地重置它(通过@Rur调用)。 从JUnit 4.11开始,@规则字段必须是非静态的,@ClassRule字段必须是静态的,因此上述操作不再可行。 有明确的变通方法(例如,明确地