温馨提示×

Kotlin伴生对象如何进行单元测试

小樊
82
2024-11-01 22:01:06
栏目: 编程语言

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

0