我有这个简化的 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,但似乎没有任何效果。测试这门课的正确方法是什么?
您可以通过提供测试 API 以及实际实现来查看媒体播放器本身是否支持测试,否则我认为您在此示例中尝试测试的是媒体播放器功能而不是您编写的逻辑,这不是测试的目的由于媒体播放器是由谷歌提供的,因此不应测试其功能。