我尝试写一个基本的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'
答案 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