John O'Reilly
07/09/2021, 9:22 PMJohn O'Reilly
07/09/2021, 9:32 PMloadKoinModules
russhwolf
07/09/2021, 9:53 PMJohn O'Reilly
07/10/2021, 8:39 AMNavHost
for example and observe/pass down from there the different pieces of data that the screen level ones need. Can certainly do that but it feels like they become somewhat less encapsulated than before.John O'Reilly
07/10/2021, 11:29 AM@Composable
fun CalendarScreen(
onBackPressed: () -> Unit,
calendarViewModel: CalendarViewModel = viewModel()
) {
trying same thing here with Koin and seems to work well
@Composable
fun PersonListScreen(paddingValues: PaddingValues,
personSelected: (person: Assignment) -> Unit,
peopleInSpaceViewModel: PeopleInSpaceViewModel = getViewModel()
) {
can write compose test like following then....but def open to better ways of doing any of this
@Test
fun testGetPeople() {
val peopleInSpaceRepository = PeopleInSpaceRepositoryFake()
val peopleInSpaceViewModel = PeopleInSpaceViewModel(peopleInSpaceRepository)
composeTestRule.setContent {
PersonListScreen(
paddingValues = PaddingValues(),
personSelected = {},
peopleInSpaceViewModel = peopleInSpaceViewModel
)
}
composeTestRule
.onNodeWithText("Megan McArthur")
.assertIsDisplayed()
}
arnaud.giuliani
07/12/2021, 8:39 AMdeclare
API to replace a definition with a Mock one if you need