Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用导航架构的Android单元测试_Android_Unit Testing_Kotlin_Junit - Fatal编程技术网

使用导航架构的Android单元测试

使用导航架构的Android单元测试,android,unit-testing,kotlin,junit,Android,Unit Testing,Kotlin,Junit,我正在使用Android导航组件,它有一个名为身份验证活动的活动,其中包含3个名为SplashFragment、登录片段、OTP片段 我想对登录片段进行单元测试,它包含不同的字段,如手机号码、姓名、电子邮件、状态下拉列表 请帮助我如何为手机号码字段、姓名、电子邮件编写单元测试用例。我附上了我的单元测试代码示例,gradle dependency 框架尝试:-Mockito,浓缩咖啡,机器人电气 提前谢谢 @Test fun vmInitialization() { val state1

我正在使用Android导航组件,它有一个名为身份验证活动的活动,其中包含3个名为SplashFragment登录片段OTP片段

我想对登录片段进行单元测试,它包含不同的字段,如手机号码、姓名、电子邮件、状态下拉列表

请帮助我如何为手机号码字段、姓名、电子邮件编写单元测试用例。我附上了我的单元测试代码示例,gradle dependency

框架尝试:-Mockito浓缩咖啡机器人电气

提前谢谢

@Test
fun vmInitialization() {
    val state1 = State("DL", "Delhi")
    val state2 = State("UP", "Uttar Pradesh")
    val list: ArrayList<State> = ArrayList()
    list!!.add(state1)
    list!!.add(state2)
    val bundle = Bundle().putParcelableArrayList("stateList", list as ArrayList<Parcelable>)
    launchFragment(R.id.loginFragment, bundle as Bundle)
    val navController = TestNavHostController(ApplicationProvider.getApplicationContext())
    navController.setGraph(R.navigation.nav_graph_auth)
    val scenario = launchFragmentInContainer<LoginFragment>()
    navController.setViewModelStore(ViewModelStore())
    scenario.onFragment { fragment ->
        Navigation.setViewNavController(fragment.requireView(), navController)
    }
    onView(ViewMatchers.withId(R.id.btn_proceed)).perform(ViewActions.click())
    val navGraph = navController.navigatorProvider.navigation(
        id = R.id.nav_graph_auth,
        startDestination = R.id.otpFragment
    ) {
    }
    navController.setGraph(navGraph, null)
    scenario.onFragment { fragment ->
        assertNotNull(fragment)
        assertThat(fragment).isNotNull()
        assertThat(fragment.savedStateViewModel).isNotNull()
    }
}

我对你所说的单元测试/单元测试用例和OTP片段感到困惑。但是,如果您要有一个
登录片段
。你的应用程序应该有一个API,这样你就可以轻松地存储你的
用户数据。除非您了解sql,否则我建议您使用Firebase实时数据库/Firebase身份验证,因为它对初学者很友好


下面是Firebase的一个链接。()

Hi开发者。。。。有关于这个问题的更新吗??
debugImplementation "androidx.navigation:navigation-testing:2.3.0-alpha06"
debugImplementation "androidx.test:runner:1.2.0"
debugImplementation "androidx.test:core:1.2.0"
debugImplementation("androidx.test:rules:1.2.0")
debugImplementation("androidx.fragment:fragment-ktx:1.1.0-beta01")
debugImplementation "androidx.test.ext:junit-ktx:1.1.1"
debugImplementation('androidx.fragment:fragment-testing:1.1.0') {
    // exclude androidx.test:core while fragment_testing depends on 1.1.0
    exclude group: 'androidx.test', module: 'core'
}