溫馨提示×

Kotlin伴生對象如何進(jìn)行單元測試

小樊
81
2024-11-01 22:01:06
欄目: 編程語言

在 Kotlin 中,可以使用 JUnit 和 Mockito 等測試框架對伴生對象(companion object)進(jìn)行單元測試。以下是一個簡單的示例,展示了如何對伴生對象進(jìn)行單元測試:

首先,這是一個包含伴生對象的 Kotlin 類:

class Calculator {
    companion object {
        fun add(a: Int, b: Int): Int {
            return a + b
        }
    }
}

接下來,我們將編寫一個測試類來測試 Calculator 類的伴生對象中的 add 函數(shù):

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() {
        // 創(chuàng)建一個伴生對象的 mock 實(shí)例
        val calculatorMock = mock(Calculator::class.java)

        // 使用 Mockito 的 `when` 方法定義當(dāng)調(diào)用 `add` 函數(shù)時應(yīng)該返回的值
        `when`(calculatorMock.add(1, 2)).thenReturn(3)

        // 調(diào)用伴生對象的 `add` 函數(shù)并驗(yàn)證結(jié)果
        val result = calculatorMock.add(1, 2)
        assertEquals(3, result)

        // 驗(yàn)證 `add` 函數(shù)是否被正確調(diào)用
        `when`(calculatorMock.add(3, 4)).thenReturn(7)
        val result2 = calculatorMock.add(3, 4)
        assertEquals(7, result2)
    }
}

在這個示例中,我們首先使用 Mockito 創(chuàng)建了一個 Calculator 類的伴生對象的 mock 實(shí)例。然后,我們使用 when 方法定義了當(dāng)調(diào)用 add 函數(shù)時應(yīng)該返回的值。最后,我們調(diào)用伴生對象的 add 函數(shù)并驗(yàn)證結(jié)果是否符合預(yù)期。

0