我试图写一个基本的机器人测验。
当我开始测试时,我得到:
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'
[我在Android Studio 3.4.2和compileSdkVersion 28中解决了此问题
我的测试具有此初始配置:
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.O_MR1])
class MyTest {
}
诀窍是将下一行添加到gradle.properties:
android.enableUnitTestBinaryResources=true