当我在测试开始前使用 robolectric 运行改造测试时,我遇到了两个错误

我已经在测试包中编写了这个测试,用于测试一个retrofit类,但是即使在测试星之前,除了未知的“常量”之外@Config,还会显示此错误:


@Config(constants = BuildConfig.class, sdk =21,   manifest="app/manifests/AndroidManifest.xml")


@RunWith(RobolectricTestRunner.class)

public class MultiFactorAPITest {

private MainActivity mainActivity;


@Mock

private MultiFactorAPI mockMultiFactorAPI;


@Captor

private ArgumentCaptor<Callback<List<ValidatePhoneUserResponse>>>    callbackArgumentCaptor;


@Before

public void setUp() {

    MockitoAnnotations.initMocks(this);


    ActivityController<MainActivity> controller =    Robolectric.buildActivity(MainActivity.class);

    mainActivity = controller.get();


    // Then we need to swap the retrofit api impl. with a mock one

    // We store our Retrofit api impl as a static singleton in class RestClient, hence:

    RestClient.setApi(mockMultiFactorAPI);


    controller.create();

}

错误是:


现在必须显式声明注释处理器。发现编译类路径的以下依赖项包含注释处理器。请将它们添加到 annotationProcessor 配置中。- auto-service-1.0-rc4.jar (com.google.auto.service:auto-service:1.0-rc4) 或者,设置 android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true 以继续之前的行为。请注意,此选项已弃用,将来会被删除。有关详细信息,请参阅https://developer.android.com/r/tools/annotation-processor-error-message.html 。


我添加了这些行来漱口:


dependencies {

    implementation 'org.robolectric:robolectric:4.3'

    implementation "org.mockito:mockito-core:1.10.19"

    implementation 'org.hamcrest:hamcrest-library:1.1'

}

在gradle.Madule:


android{

testOptions {

    unitTests {

        includeAndroidResources = true

    }

}    }

在 gradle.app 中:


dependencies{

    classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1'

}

在 gradle.propertice 中:


android.enableUnitTestBinaryResources=true

android.enableAapt2=false


弑天下
浏览 85回答 1
1回答

慕标5832272

通过将此代码放入我的 app.gradle 解决了我的问题:dependencies{&nbsp; &nbsp; implementation 'com.squareup.retrofit2:retrofit:2.5.0'&nbsp; &nbsp; implementation 'com.squareup.okhttp3:mockwebserver:3.6.0'}和1) 在 Android Studio 中找到 .gradle 文件夹的位置,转到“文件”->“设置”,然后在搜索框中键入“gradle”。您将能够在那里选择正确的路径2)删除.gradle目录(我的位置是C:\Users\UserName.gradle),重启android studio。它会自动创建一个新的。来自Android 工作室:构建项目错误 - 无法完成 Gradle 执行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java