我为 Android 应用程序编写 kotlin 代码已经有一段时间了,但我决定也开始为我的应用程序编写测试代码。我在使用 Hilt 时遇到了一些问题。我尝试的是:
import android.app.Application
open class AbstractApplication: Application()
Run Code Online (Sandbox Code Playgroud)
@HiltAndroidApp
class IgmeApplication : IgmeAbstractApplication() {
@Inject
lateinit var authenticationManager: AuthenticationManager
....
}
Run Code Online (Sandbox Code Playgroud)
然后在Android测试目录中:
import dagger.hilt.android.testing.CustomTestApplication
@CustomTestApplication(AbstractApplication::class)
open class HiltTestApplication
Run Code Online (Sandbox Code Playgroud)
import android.app.Application
import android.content.Context
import androidx.test.runner.AndroidJUnitRunner
class HiltTestRunner : AndroidJUnitRunner() {
override fun newApplication(
cl: ClassLoader?,
className: String?,
context: Context?
): Application {
return super.newApplication(cl,HiltTestApp::class.java.name, context)
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试课:
@HiltAndroidTest
class AuthenticationTest{
@get:Rule
var hiltRule = HiltAndroidRule(this)
@Test
fun useAppContext() {
// Context of the app under …Run Code Online (Sandbox Code Playgroud)