如何为 MediaPlayer 派生的类编写 Kotlin 单元测试

问题描述 投票:0回答:1

我有这个简化的 Kotlin 类,我想为其编写一个测试:

class Player: MediaPlayer() {
    init {
        val attr = AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build()
        setAudioAttributes(attr)
    }
}

我首先创建一个新对象:

@Test
    fun testPlayerInitialization() {
        val mp = Player()
        // do some testing...
    }

但测试立即失败,并出现以下空指针异常:

Cannot invoke "android.media.AudioAttributes$Builder.setUsage(int)" because the return value of "android.media.AudioAttributes$Builder.setContentType(int)" is null

我尝试模拟 AudioAttributes,但似乎没有任何效果。测试这门课的正确方法是什么?

android kotlin unit-testing
1个回答
0
投票

您可以通过提供测试 API 以及实际实现来查看媒体播放器本身是否支持测试,否则我认为您在此示例中尝试测试的是媒体播放器功能而不是您编写的逻辑,这不是测试的目的由于媒体播放器是由谷歌提供的,因此不应测试其功能。

© www.soinside.com 2019 - 2024. All rights reserved.