【问题标题】:I faced two error when I run my retrofit test with robolectric befor the test starts我在测试开始前使用 robolectric 运行改造测试时遇到了两个错误
【发布时间】:2019-07-09 05:19:36
【问题描述】:

我已经在测试包中编写了这个测试,用于测试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 配置中。 - 自动服务-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

【问题讨论】:

    标签: java android


    【解决方案1】:

    将此代码放入我的 app.gradle 解决了我的问题:

    dependencies{
        implementation 'com.squareup.retrofit2:retrofit:2.5.0'
        implementation 'com.squareup.okhttp3:mockwebserver:3.6.0'
    }
    

    1) 找到 .gradle 文件夹的位置,在 Android Studio 中转到 File->Settings 并在搜索框中输入“gradle”。您将能够在那里选择正确的路径

    2)删除.gradle目录(我的位置是C:\Users\UserName.gradle),然后重启android studio。它会自动创建一个新的。

    来自Android studio: build project error - Failed to complete Gradle execution

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 2016-10-20
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多