diff --git a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/HomeViewModelTest.kt b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/HomeViewModelTest.kt index f6f245d06..b62f2f1ac 100644 --- a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/HomeViewModelTest.kt +++ b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/HomeViewModelTest.kt @@ -33,10 +33,14 @@ class HomeViewModelTest { Dispatchers.resetMain() } + private fun `사용자 인증 유무가 다음과 같을 때`(isSigned: Boolean) { + every { authRepository.isSigned } returns isSigned + } + @Test fun `축제 목록을 요청했을 때 토큰이 있으면 축제 목록이 보인다`() = runTest { // given - every { authRepository.isSigned } returns true + `사용자 인증 유무가 다음과 같을 때`(true) // when vm.event.test { @@ -50,7 +54,7 @@ class HomeViewModelTest { @Test fun `축제 목록을 요청했을 때 토큰이 없어도 축제 목록이 보인다`() = runTest { // given - every { authRepository.isSigned } returns false + `사용자 인증 유무가 다음과 같을 때`(false) vm.event.test { // when @@ -64,7 +68,7 @@ class HomeViewModelTest { @Test fun `티켓 목록을 요청했을 때 토큰이 있으면 티켓 목록 보기 이벤트가 발생한다`() = runTest { // given - every { authRepository.isSigned } returns true + `사용자 인증 유무가 다음과 같을 때`(true) vm.event.test { // when @@ -78,7 +82,7 @@ class HomeViewModelTest { @Test fun `티켓 목록을 요청했을 때 토큰이 있으면 로그인 보기 이벤트가 발생한다`() = runTest { // given - every { authRepository.isSigned } returns false + `사용자 인증 유무가 다음과 같을 때`(false) vm.event.test { // when @@ -92,7 +96,7 @@ class HomeViewModelTest { @Test fun `마이페이지를 요청했을 때 토큰이 있으면 마이페이지 보기 이벤트가 발생한다`() = runTest { // given - every { authRepository.isSigned } returns true + `사용자 인증 유무가 다음과 같을 때`(true) vm.event.test { // when @@ -106,7 +110,7 @@ class HomeViewModelTest { @Test fun `마이페이즈를 요청했을 때 토큰이 없으면 로그인 보기 이벤트가 발생한다`() = runTest { // given - every { authRepository.isSigned } returns false + `사용자 인증 유무가 다음과 같을 때`(false) vm.event.test { // when diff --git a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/ticketlist/TicketListViewModelTest.kt b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/ticketlist/TicketListViewModelTest.kt index af3fe8dda..050fe50fd 100644 --- a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/ticketlist/TicketListViewModelTest.kt +++ b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/home/ticketlist/TicketListViewModelTest.kt @@ -39,12 +39,16 @@ class TicketListViewModelTest { Dispatchers.resetMain() } + private fun `현재 티켓 요청 결과가 다음과 같을 때`(result: Result>) { + coEvery { ticketRepository.loadCurrentTickets() } returns result + } + @Test fun `티켓을 받아왔을 때 티켓이 있으면 성공이고 티켓도 존재하는 상태이다`() { // given val tickets = TicketFixture.getMemberTickets((1L..10L).toList()) - coEvery { ticketRepository.loadCurrentTickets() } returns Result.success(tickets) + `현재 티켓 요청 결과가 다음과 같을 때`(Result.success(tickets)) // when vm.loadCurrentTickets() @@ -71,7 +75,8 @@ class TicketListViewModelTest { fun `티켓을 받아왔을 때 티켓이 없으면 성공이지만 티켓은 없는 상태이다`() { // given val fakeEmptyTickets = emptyList() - coEvery { ticketRepository.loadCurrentTickets() } returns Result.success(fakeEmptyTickets) + + `현재 티켓 요청 결과가 다음과 같을 때`(Result.success(fakeEmptyTickets)) // when vm.loadCurrentTickets() @@ -98,9 +103,7 @@ class TicketListViewModelTest { @Test fun `티켓 목록 받아오기를 실패하면 에러 상태이다`() { // given - coEvery { ticketRepository.loadCurrentTickets() } answers { - Result.failure(Exception()) - } + `현재 티켓 요청 결과가 다음과 같을 때`(Result.failure(Exception())) // when vm.loadCurrentTickets() diff --git a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/tickethistory/TicketHistoryViewModelTest.kt b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/tickethistory/TicketHistoryViewModelTest.kt index 9e90b6955..b9c8f8fec 100644 --- a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/tickethistory/TicketHistoryViewModelTest.kt +++ b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/tickethistory/TicketHistoryViewModelTest.kt @@ -42,16 +42,18 @@ class TicketHistoryViewModelTest { Dispatchers.resetMain() } + private fun `티켓 기록 요청 결과가 다음과 같을 때`(result: Result>) { + coEvery { + ticketRepository.loadHistoryTickets(any()) + } returns result + } + @Test fun `빈 리스트가 아닌 티켓들을 가져오면 성공 상태이다`() { // given val ids = listOf(1L, 2L, 3L, 4L, 5L) - coEvery { - ticketRepository.loadHistoryTickets(any()) - } answers { - Result.success(TicketFixture.getMemberTickets(ids)) - } + `티켓 기록 요청 결과가 다음과 같을 때`(Result.success(TicketFixture.getMemberTickets(ids))) // when vm.loadTicketHistories() @@ -79,11 +81,7 @@ class TicketHistoryViewModelTest { @Test fun `빈 리스트인 티켓을 받아도 성공 상태이다`() { // given - coEvery { - ticketRepository.loadHistoryTickets(any()) - } answers { - Result.success(emptyList()) - } + `티켓 기록 요청 결과가 다음과 같을 때`(Result.success(listOf())) // when vm.loadTicketHistories() @@ -136,11 +134,7 @@ class TicketHistoryViewModelTest { @Test fun `티켓을 받아오기 실패하면 에러 상태이다`() { // given - coEvery { - ticketRepository.loadHistoryTickets(any()) - } answers { - Result.failure(Exception()) - } + `티켓 기록 요청 결과가 다음과 같을 때`(Result.failure(Exception())) // when vm.loadTicketHistories() diff --git a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/ticketreserve/TicketReserveViewModelTest.kt b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/ticketreserve/TicketReserveViewModelTest.kt index 552e532f0..a861a51bb 100644 --- a/android/festago/app/src/test/java/com/festago/festago/presentation/ui/ticketreserve/TicketReserveViewModelTest.kt +++ b/android/festago/app/src/test/java/com/festago/festago/presentation/ui/ticketreserve/TicketReserveViewModelTest.kt @@ -86,20 +86,27 @@ class TicketReserveViewModelTest { Dispatchers.resetMain() } + private fun `예약 정보 요청 결과가 다음과 같을 때`(result: Result) { + coEvery { festivalRepository.loadFestivalDetail(any()) } returns result + } + + private fun `인증 여부가 다음과 같을 때`(isSigned: Boolean) { + coEvery { authRepository.isSigned } answers { isSigned } + } + + private fun `특정 공연의 티켓 타입 요청 결과가 다음과 같을 때`(result: Result>) { + coEvery { reservationTicketRepository.loadTicketTypes(any()) } returns result + } + + private fun `티켓 예약 요청 결과가 다음과 같을 때`(result: Result) { + coEvery { ticketRepository.reserveTicket(any()) } returns result + } + @Test fun `예약 정보를 불러오면 성공 이벤트가 발생하고 리스트를 반환한다`() { // given - coEvery { - festivalRepository.loadFestivalDetail(0) - } answers { - Result.success(fakeReservation) - } - - coEvery { - authRepository.isSigned - } answers { - true - } + `예약 정보 요청 결과가 다음과 같을 때`(Result.success(fakeReservation)) + `인증 여부가 다음과 같을 때`(true) // when vm.loadReservation() @@ -122,7 +129,7 @@ class TicketReserveViewModelTest { @Test fun `예약 정보를 불러오는 것을 실패하면 에러 이벤트가 발생한다`() { // given - coEvery { festivalRepository.loadFestivalDetail(0) } returns Result.failure(Exception()) + `예약 정보 요청 결과가 다음과 같을 때`(Result.failure(Exception())) // when vm.loadReservation(0) @@ -151,15 +158,8 @@ class TicketReserveViewModelTest { @Test fun `특정 공연의 티켓 타입을 보여주는 이벤트가 발생하면 해당 공연의 티켓 타입을 보여준다`() = runTest { // given - coEvery { - reservationTicketRepository.loadTicketTypes(1) - } answers { - Result.success(fakeReservationTickets) - } - - coEvery { authRepository.isSigned } answers { - true - } + `특정 공연의 티켓 타입 요청 결과가 다음과 같을 때`(Result.success(fakeReservationTickets)) + `인증 여부가 다음과 같을 때`(true) vm.event.test { // when @@ -181,13 +181,8 @@ class TicketReserveViewModelTest { @Test fun `특정 공연의 티켓 타입을 보여주는 것을 실패하면 에러 이벤트가 발생한다`() { // given - coEvery { reservationTicketRepository.loadTicketTypes(1) } returns Result.failure(Exception()) - - coEvery { - authRepository.isSigned - } answers { - true - } + `특정 공연의 티켓 타입 요청 결과가 다음과 같을 때`(Result.failure(Exception())) + `인증 여부가 다음과 같을 때`(true) // when vm.showTicketTypes(1, LocalDateTime.MIN) @@ -217,11 +212,7 @@ class TicketReserveViewModelTest { @Test fun `티켓 유형을 선택하고 예약하는 것을 실패하면 예약 실패 이벤트가 발생한다`() = runTest { // given - coEvery { - ticketRepository.reserveTicket(0) - } answers { - Result.failure(Exception()) - } + `티켓 예약 요청 결과가 다음과 같을 때`(Result.failure(Exception())) vm.event.test { // when