Skip to content

Commit

Permalink
test: どちらの API が呼ばれたか区別できてなかったので mock を修正 (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
kokoichi206 committed Dec 7, 2022
1 parent cae4f45 commit 7e36b6d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ class MockGitHubRepositoryImpl : GitHubRepository {

companion object {
// FIXME: 順番によっては失敗しうる気がする。
var counter = 0
var searchRepositoriesCounter = 0
var searchUsersCounter = 0
var passedQuery: String? = null
var error: Exception? = null
var repositories = listOf(
Expand Down Expand Up @@ -49,7 +50,8 @@ class MockGitHubRepositoryImpl : GitHubRepository {
)

fun initMock() {
counter = 0
searchRepositoriesCounter = 0
searchUsersCounter = 0
passedQuery = null
error = null
repositories = listOf(
Expand Down Expand Up @@ -93,7 +95,7 @@ class MockGitHubRepositoryImpl : GitHubRepository {

override suspend fun searchRepositories(query: String): List<Repository> {

counter += 1
searchRepositoriesCounter += 1
passedQuery = query

error?.let { throw it }
Expand All @@ -103,7 +105,7 @@ class MockGitHubRepositoryImpl : GitHubRepository {

override suspend fun searchUsers(query: String): List<User> {

counter += 1
searchUsersCounter += 1
passedQuery = query

error?.let { throw it }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ class MainViewTest {
// Mock で用意した数表示されていること
searchResult.onChildren().assertCountEquals(2)

assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertEquals(0, MockGitHubRepositoryImpl.searchUsersCounter)
assertEquals("test", MockGitHubRepositoryImpl.passedQuery)
// 直近の検索結果が消えていること
recent.assertDoesNotExist()
Expand All @@ -121,7 +122,7 @@ class MainViewTest {
searchResult.onChildren().assertCountEquals(0)

// API が呼び出されてないこと
assertEquals(0, MockGitHubRepositoryImpl.counter)
assertEquals(0, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertNull(MockGitHubRepositoryImpl.passedQuery)
// 直近の検索結果が消えていないこと
recent.assertExists()
Expand All @@ -143,7 +144,7 @@ class MainViewTest {
// Assert
searchResult.onChildren().assertCountEquals(0)
// API が呼び出されていること
assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertEquals("test", MockGitHubRepositoryImpl.passedQuery)
// Snack Bar が表示されていること
snackBar.assertExists().assertTextContains("結果が1件も見つかりませんでした。\n検索ワードを変えて再度お試しください。")
Expand Down Expand Up @@ -173,7 +174,7 @@ class MainViewTest {
searchResult.onChildren().assertCountEquals(0)

// API が呼び出されていること
assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertEquals("test2", MockGitHubRepositoryImpl.passedQuery)
// 直近の検索結果が消えていないこと
recent.assertExists()
Expand Down Expand Up @@ -298,7 +299,7 @@ class MainViewTest {
searchResult.onChildren().assertCountEquals(2)

// API が呼び出されていること
assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertEquals(query, MockGitHubRepositoryImpl.passedQuery)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ class UserViewTest {
// Assert
searchBar.assertTextEquals("kokoichi206")

assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(0, MockGitHubRepositoryImpl.searchRepositoriesCounter)
assertEquals(1, MockGitHubRepositoryImpl.searchUsersCounter)
assertEquals("kokoichi206", MockGitHubRepositoryImpl.passedQuery)
}

Expand All @@ -95,7 +96,7 @@ class UserViewTest {
searchResult.onChildren().assertCountEquals(0)

// API が呼び出されてないこと
assertEquals(0, MockGitHubRepositoryImpl.counter)
assertEquals(0, MockGitHubRepositoryImpl.searchUsersCounter)
assertNull(MockGitHubRepositoryImpl.passedQuery)
}

Expand All @@ -115,7 +116,7 @@ class UserViewTest {
// Assert
searchResult.onChildren().assertCountEquals(0)
// API が呼び出されていること
assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchUsersCounter)
assertEquals("test", MockGitHubRepositoryImpl.passedQuery)
// Snack Bar が表示されていること
snackBar.assertExists().assertTextContains("結果が1件も見つかりませんでした。\n検索ワードを変えて再度お試しください。")
Expand Down Expand Up @@ -143,7 +144,7 @@ class UserViewTest {
searchResult.onChildren().assertCountEquals(0)

// API が呼び出されていること
assertEquals(1, MockGitHubRepositoryImpl.counter)
assertEquals(1, MockGitHubRepositoryImpl.searchUsersCounter)
assertEquals("test2", MockGitHubRepositoryImpl.passedQuery)
// スナックバーが表示されていること
snackBar.assertExists()
Expand Down

0 comments on commit 7e36b6d

Please sign in to comment.