在Robolectric测试开始时添加Config注释时的AnnotationFormatError

时间:2017-05-25 17:14:46

标签: android robolectric

我尝试写一个基本的robolectric测试。

当我开始测试时,我得到:

Exception in thread "main" java.lang.annotation.AnnotationFormatError: 
Invalid default: public abstract java.lang.Class 
org.robolectric.annotation.Config.application()

当我删除@Config注释时:

java.lang.NoClassDefFoundError: android/app/Application
at org.robolectric.annotation.Config$Builder.<init>(Config.java:376)

我测试的片段:

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
public class MyTest {

    @Mock
    private MyType myTypeMock;

    @Before
    public void setUp() {
        initMocks(this);
    }

    @Test
    public void shouldDoFoo() {

在我的build.gradle中:

    testCompile 'org.robolectric:robolectric:3.3.2'

1 个答案:

答案 0 :(得分:0)

我在Android Studio 3.4.2和compileSdkVersion 28,robolectric 4.3中解决了这个问题

我的测试具有以下初始配置:

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.O_MR1])
class MyTest {
}

诀窍是将下一行添加到gradle.properties:

android.enableUnitTestBinaryResources=true