在 Kotlin 中,可以使用 JUnit 和 Mockito 等測試框架對伴生對象(companion object)進行單元測試。以下是一個簡單的示例,展示了如何對伴生對象進行單元測試:
首先,這是一個包含伴生對象的 Kotlin 類:
class Calculator {
companion object {
fun add(a: Int, b: Int): Int {
return a + b
}
}
}
接下來,我們將編寫一個測試類來測試 Calculator
類的伴生對象中的 add
函數:
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.assertEquals
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
class CalculatorTest {
@Test
fun testAdd() {
// 創建一個伴生對象的 mock 實例
val calculatorMock = mock(Calculator::class.java)
// 使用 Mockito 的 `when` 方法定義當調用 `add` 函數時應該返回的值
`when`(calculatorMock.add(1, 2)).thenReturn(3)
// 調用伴生對象的 `add` 函數并驗證結果
val result = calculatorMock.add(1, 2)
assertEquals(3, result)
// 驗證 `add` 函數是否被正確調用
`when`(calculatorMock.add(3, 4)).thenReturn(7)
val result2 = calculatorMock.add(3, 4)
assertEquals(7, result2)
}
}
在這個示例中,我們首先使用 Mockito 創建了一個 Calculator
類的伴生對象的 mock 實例。然后,我們使用 when
方法定義了當調用 add
函數時應該返回的值。最后,我們調用伴生對象的 add
函數并驗證結果是否符合預期。