@@ -3,14 +3,15 @@ package com.github.galcyurio.todo.tasks
3
3
import androidx.navigation.Navigation
4
4
import androidx.navigation.testing.TestNavHostController
5
5
import androidx.test.core.app.ApplicationProvider
6
- import androidx.test.core.app.launchActivity
6
+ import androidx.test.ext.junit.rules.activityScenarioRule
7
7
import androidx.test.ext.junit.runners.AndroidJUnit4
8
8
import com.github.galcyurio.todo.MainActivity
9
9
import com.github.galcyurio.todo.R
10
10
import dagger.hilt.android.testing.HiltAndroidRule
11
11
import dagger.hilt.android.testing.HiltAndroidTest
12
12
import org.hamcrest.Matchers.equalTo
13
13
import org.junit.Assert.assertThat
14
+ import org.junit.Before
14
15
import org.junit.Rule
15
16
import org.junit.Test
16
17
import org.junit.runner.RunWith
@@ -19,17 +20,20 @@ import org.junit.runner.RunWith
19
20
@RunWith(AndroidJUnit4 ::class )
20
21
class TasksFragmentTest {
21
22
@get:Rule val hiltRule = HiltAndroidRule (this )
23
+ @get:Rule val activityScenarioRule = activityScenarioRule<MainActivity >()
22
24
23
- @Test fun showTasksUi () {
24
- // given
25
- val navController = TestNavHostController (ApplicationProvider .getApplicationContext())
26
- navController.setGraph(R .navigation.nav_graph)
25
+ private lateinit var navController: TestNavHostController
27
26
28
- // when - 화면이 뜨면
29
- launchActivity<MainActivity >().onActivity {
27
+ @Before fun setUp () {
28
+ navController = TestNavHostController (ApplicationProvider .getApplicationContext())
29
+ navController.setGraph(R .navigation.nav_graph)
30
+ activityScenarioRule.scenario.onActivity {
30
31
Navigation .setViewNavController(it.requireViewById(R .id.nav_host_fragment), navController)
31
32
}
33
+ }
32
34
35
+ @Test fun showTasksUi () {
36
+ // when - 화면이 뜨면
33
37
// then - 업무 목록 화면이 보여야 한다
34
38
assertThat(navController.currentDestination?.id, equalTo(R .id.tasksFragment))
35
39
}
0 commit comments