MST

星途 面试题库

面试题:Kotlin中MockK框架基础使用

在Kotlin项目中,使用MockK框架对一个简单的Service类(包含一个返回字符串的方法)进行单元测试,模拟该Service类的依赖并验证方法调用,写出完整的测试代码。
38.6万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.verify
import org.junit.jupiter.api.Test

// 假设这是被测试的Service类
class Service {
    fun getMessage(): String {
        // 实际逻辑可能会依赖其他组件,这里简单返回一个字符串
        return "Hello, World!"
    }
}

class ServiceTest {

    @MockK
    lateinit var mockService: Service

    init {
        MockKAnnotations.init(this)
    }

    @Test
    fun `test getMessage method`() {
        // 定义模拟的返回值
        val mockMessage = "Mocked Hello"
        every { mockService.getMessage() } returns mockMessage

        // 调用方法
        val result = mockService.getMessage()

        // 验证方法被调用
        verify { mockService.getMessage() }

        // 验证返回值
        assert(result == mockMessage)
    }
}