- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试让 RunWith(PowerMockRunner.class) 使用我现有的包注释。
版本:
powermock 1.4.12 mockito 1.9.0 junit 4.8.2
package-info.java//这是包注解
@TestAnnotation(version="1.0")
package com.smin.dummy;
TestAnnotation.java//这是包“com.smin.dummy”的元数据注释类
package com.smin.dummy;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PACKAGE)
public @interface TestAnnotation {
String version();
}
A.java
package com.smin.dummy;
public class A {
private static Package myPackage;
private static TestAnnotation version;
static {
myPackage = TestAnnotation.class.getPackage();
version = myPackage.getAnnotation(TestAnnotation.class);
}
public static String getVersion() {
return version.version();
}
}
MockA.java
package com.smin.dummy;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.smin.dummy.A;
@RunWith(PowerMockRunner.class) //comment out this line to see the difference
@PrepareForTest(A.class)
public class MockA {
@Test
public void test_mocked() throws Throwable {
String thisVersion = A.getVersion();
System.out.println(thisVersion);
}
}
在 unitest MockA.java 中,如果我不使用 RunWith(PowerMockRunner.class)
,我将打印 thisVersion
0.1
符合预期。但是添加RunWith(PowerMockRunner.class)
后,thisVersion
变为null
。我怀疑 PowerMockRunner 在这里用包注释做了一些有趣的事情,有人知道吗?请参阅下面我的代码的迷你版本:
最佳答案
基于@Alban 在评论中的调查,将此注释添加到您的测试用例似乎可以规避问题:
@PowerMockIgnore("com.smin.dummy.TestAnnotation")
关于java - RunWith(PowerMockRunner.class) 不适用于包注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377634/
我是第一次尝试使用 Powermock 我使用 build.gradle 并添加: dependencies { ... testCompile 'org.mockito:mockito-al
我遇到了在 Eclipse 中使用 EclEmma 插件的问题。 当我使用注释时,它不显示代码覆盖率 @RunWith路过(PowerMockRunner.class)作为论据。如果使用 (Mocki
目前我的测试类有以下内容: @RunWith(Parameterized.class) @RunWith(PowerMockRunner.class) public class TestApp ext
我无法使用 Powermock 测试运行器运行非常简单的测试类。它会导致 ExceptionInInitializerError。它看起来是类路径上的依赖项的问题,但是,我尝试了依赖项版本的几个变体,
我的本地单元测试始终使用 LiveData。通常,当您尝试在 MutableLiveData 上设置值时,您会得到 java.lang.RuntimeException: Method getMa
我正在尝试让 RunWith(PowerMockRunner.class) 使用我现有的包注释。 版本: powermock 1.4.12 mockito 1.9.0 junit 4.8.2 pack
我需要模拟一个类的静态方法并在我的测试中使用该模拟方法。现在看来我只能使用 PowerMock 来做到这一点。 我用@RunWith(PowerMockRunner.class) 注释类,并用适当的类
根据the PowerMock docs ,我应该能够使用 PowerMockRule 而不是 @RunWith(PowerMockRunner.class) 运行并获得相同的结果。 我似乎发现了一个
我正在尝试使用 PowerMockRunner 创建一个 Junit 测试套件,但它不起作用。 @RunWith(PowerMockRunner.class) @PowerMockRunnerDele
考虑如下使用 PowerMockRunner 的 DateUtilTest 类: import com.reporting.utils.DateUtil; import org.junit.Test;
我想使用 PowerMock 重写包 protected 类中的方法,以进行我在 Android 项目上进行的一些测试。我相信这是执行此操作的正确方法,以便我可以代理我想要代理调用的方法。 我的测试位
我正在进行单元测试。我们的项目正在与 Play!框架。单元测试是用 Java 编写的。我们的团队遇到了一个问题,即我们遇到了使用 @RunWith(PowerMockRunner.class) 注解并
我正在尝试测试 JavaMail api 并使用 SpringRunner 和 PowerMockRunner,但它失败了。 @RunWith(PowerMockRunner.class) @Powe
我有以下代码: @RunWith(PowerMockRunner.class) @PrepareForTest({RequestUtils.class, OsgiUti
我有一个基于 Gradle 的 Java 项目,现在我想使用 PowerMock 模拟私有(private)方法。问题是我无法使用 PowerMockRunner,因为当我添加 @RunWith(or
我有一个 gradle 文件 testCompile('junit:junit') testCompile('org.powermock:powermock-core:1.6.5') testComp
我正在尝试使用 power mockito 编写单元测试用例。 使用注释时@RunWith(PowerMockRunner.class) 我收到以下编译错误:- TypeMismatch: canno
当我使用 MockitoJunitRunner 测试以下函数时,它按预期工作正常。但是当我使用 PowerMockRunner 运行相同的测试时,出现以下异常: org.jasypt.exceptio
我正在尝试让 PowerMockito 与我的应用程序一起工作。我已将库添加到构建路径。我有以下测试类: package client.controller; import org.junit.Tes
我在项目中使用lucene 3.5.0版本,在一些单元测试中使用PowerMockRunner模拟静态方法。现在我想将 lucene 升级到版本 3.6.2,但在执行与 PowerMockRunner
我是一名优秀的程序员,十分优秀!