我打开示例代码BasicRxJavaSample(来自本文Room+RxJava)主要内容如下:
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule =
new InstantTaskExecutorRule();
BasicRxJavaSample都很好,但是我不能在测试中应用它,这就是现在的情况:
无法解析符号即时任务执行器规则
并且手动导入不起作用:
我的自动补全功能如下所示
但应该如此
我的应用构建版本.gradle(full gradle here):
// tests
testImplementation 'junit:junit:4.12'
androidTestCompile "com.android.support:support-annotations:$supportVersion"
testImplementation "android.arch.core:core-testing:$archVersion"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
// https://github.com/mockito/mockito
testImplementation 'org.mockito:mockito-core:2.13.0'
androidTestImplementation 'org.mockito:mockito-android:2.13.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'com.android.support.test:rules:1.0.1'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
// https://developer.android.com/topic/libraries/testing-support-library/packages.html
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:3.0.1'
9条答案
按热度按时间4sup72z81#
将testImplementation替换为androidTestImplementation。这样文件夹androidTest上的测试就可以访问库。
如果您使用的不是androidx,请使用
android.arch.core:core-testing:1.1.1
xzlaal3s2#
我知道现在很晚了,但我想对这个公认的答案补充一点。
如果你想用,
在JUnit测试用例中,即在测试文件夹中,则使用以下依赖项,即与testImplementation
如果您希望将
InstantTaskExecutorRule
用于UI或集成测试用例(androidTest文件夹),请使用androidTestImplementation。即:androidTestImplementation "android.arch.core:core-testing:1.0.0"
如果您想为两者添加,请使用androidTestImplementation&testImplementation,即:
androidTestImplementation "android.arch.core:core-testing:1.0.0"
testImplementation "android.arch.core:core-testing:1.0.0"
androidTestImplementation '安卓系统核心:核心测试:2.0.0'
测试实现'androidx. arch. core:核心测试:2.0.0'
voase2hg3#
对于androidX迁移,添加
qaxu7uf24#
请将这两个依赖项放入您的gradle文件中,
更多信息请访问此链接Android Architecture components integration guide
bihw5rsg5#
ffdz8vbo6#
我认为在一些链接库中存在冲突。我使用了**blockingGet()和blockingFirst()**来解决这个问题。
最后,我使用了https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator
这就是你需要的!
dba5bblo7#
有时测试依赖性问题可能是选择适当构建变体的问题,具体取决于您的Gradle配置。在我的案例中,测试仅针对调试构建变体进行配置。
aelbi1ox8#
从'androidTestImplementation 'androidx.arch.core:core-testing:1.0.0'更改为2.0.0不知何故神奇地解决了我的问题。
估计是因为我用的是androidX。
ggazkfy89#
在我的情况下,我这样使用。
将
testImplementation
更改为implementation
。我正在使用Android Studio海豚|2021.3.1补丁1.