在 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
函数并验证结果是否符合预期。