[Android] androidの簡単なテスト(Unit, UIテスト)

Unit Test(Kotlin ロジックのテスト)サンプル

■ 例:足し算関数のテスト

(src/main/java/…/Calculator.kt)

class Calculator {
    fun add(a: Int, b: Int): Int = a + b
}
import org.junit.Assert.assertEquals
import org.junit.Test

class CalculatorTest {

    @Test
    fun `add should return correct sum`() {
        val calculator = Calculator()
        val result = calculator.add(2, 3)

        assertEquals(5, result)
    }
}
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable

@Composable
fun Greeting(name: String) {
    Text(text = "Hello, $name!")
}
import androidx.compose.ui.test.*
import androidx.compose.ui.test.junit4.createComposeRule
import org.junit.Rule
import org.junit.Test

class GreetingTest {

    @get:Rule
    val composeTestRule = createComposeRule()

    @Test
    fun greeting_displaysCorrectText() {
        composeTestRule.setContent {
            Greeting("Android")
        }

        composeTestRule
            .onNodeWithText("Hello, Android!")
            .assertIsDisplayed()
    }
}

@Composable
fun CounterScreen() {
    var count = remember { mutableStateOf(0) }

    Column {
        Text("Count: ${count.value}")
        Button(onClick = { count.value++ }) {
            Text("Add")
        }
    }
}
@Test
fun counter_incrementsWhenButtonClicked() {
    composeTestRule.setContent {
        CounterScreen()
    }

    // 初期表示チェック
    composeTestRule
        .onNodeWithText("Count: 0")
        .assertIsDisplayed()

    // ボタンクリック
    composeTestRule
        .onNodeWithText("Add")
        .performClick()

    // 更新後表示チェック
    composeTestRule
        .onNodeWithText("Count: 1")
        .assertIsDisplayed()
}