我正在尝试启动并运行一个非常简单的单元测试,但是我正在为自己所缺少的内容而苦苦挣扎。
这是我要测试的方法,它在一个名为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()
方法的最简单方法。