有谁知道如何在Android junit测试用例中获得Test项目的上下文(扩展AndroidTestCase).
注意:测试不是仪器测试.
注2:我需要测试项目的上下文,而不是测试的实际应用程序的上下文.
我需要这个从测试项目的资产加载一些文件.
切换到AndroidX并收到已弃用:import androidx.test.InstrumentationRegistry
如果我下次导入:import androidx.test.platform.app.InstrumentationRegistry
我不能getContext()
例如:
val context = InstrumentationRegistry.getContext()
在build.gradle中:
androidTestImplementation 'androidx.test.ext:junit:1.0.0-beta02'
androidTestImplementation 'androidx.test:runner:1.1.0-beta02'
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我当前在Kotlin中编写的android项目中编写简单的集成测试.
问题是测试没有事件启动并因以下错误而失败:
Error:(4, 36) Unresolved reference: testing
Error:(18, 52) Unresolved reference: InstantTaskExecutorRule
Error:Execution failed for task ':app:kaptGenerateStubsDebugAndroidTestKotlin'.
> Compilation error. See log for more details
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索这个问题,但没有成功.
我已经尝试过的步骤:
androidTest)pkgName (androidTest)然后"在...中运行测试")我也尝试将我的源目录从java重命名为koltin,并设置正确的值sourceSets但由于没有成功而将其更改回来,并认为这不是原因.
重要通知:
如果我评论该行import android.arch.core.executor.testing.InstantTaskExecutorRule和所有代码InstantTaskExecutorRule(意味着整个测试逻辑将为空)并放置一个简单assert的例子,那么一切正常.
但是我想用这个特别的东西InstantTaskExecutorRule,想知道问题到底是什么以及如何解决它,或者至少知道我应该在哪里找什么.
这是我的测试代码:
import android.arch.core.executor.testing.InstantTaskExecutorRule
import android.arch.persistence.room.Room
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import com.myapp.storage.base.AppDataBase
@RunWith(AndroidJUnit4::class)
class UserDaoTest{
@JvmField @Rule val instantTaskExecutorRule = …Run Code Online (Sandbox Code Playgroud) android integration-testing kotlin android-architecture-components