Android / Kotlin-Activity上的JUnit测试方法

时间:2019-05-16 19:56:19

标签: android unit-testing kotlin junit android-espresso

我正在尝试启动并运行一个非常简单的单元测试,但是我正在为自己所缺少的内容而苦苦挣扎。

这是我要测试的方法,它在一个名为WelcomeActivity的活动中:

fun startBackgroundVideo() {
    videoView.setVideoURI(Uri.parse("android.resource://" + packageName + "/" + R.raw.my_video))
    videoView.setOnPreparedListener { mp -> mp.isLooping = true }
    videoView.start()
}

这是我当前的Test类设置的全部内容:

@RunWith(AndroidJUnit4::class)
class WelcomeActivityTests {

    @Rule
    @JvmField
    val rule  = ActivityTestRule(WelcomeActivity::class.java)

    @Test
    fun testVideoPlayer() {
        val welcomeActivity = rule.activity
        welcomeActivity.startBackgroundVideo()
        assert(welcomeActivity.videoView.isPlaying)
    }

}

看起来很简单。但是,当我尝试运行测试时,出现多个编译错误:

Unresolved reference: test
Unresolved reference: AndroidJUnit4
Unresolved reference: ActivityTestRule

奇怪的是,我们有一个UI测试,并且在“ androidTest”路径中放置了相同类型的基于规则的代码,该测试可以编译并运行良好,尽管它实际上并没有创建Activity的实例。我也使用了与该版本相同的Build Variant,但是该版本无法编译(并且仅在尝试运行测试时显示编译错误)。

我确定我缺少明显的东西。我想我可能会以错误的方式进行操作。我基本上只是在寻找测试startBackgroundVideo()方法的最简单方法。

0 个答案:

没有答案