Espresso是一种UI Test自动化测试框架,可以在短时间跑完测试并且可以跟元件互动。
ActivityTestRule:取得Activity资源
先寻找元件再调用动作or检查
寻找UI元件
onView(Matcher)
1.onView(withId()):利用ID。
2.onView(withText()):利用文字。
操作UI动作
perform(ViewActions)
1.perform(typeText()):输入文字。
2.perform(click()):点击。
3.perform(clearText()):清空文字。
检查
check(ViewAssertion(Matcher))
1.check(matches(withId)):是否有这个ID
2.check(matches(withText)):是否有这个文字
3.check(matches(isDisplayed())):是否有显示
build.gradle(Module)
dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
}
MainActivity.kt
val secret = Random().nextInt(20)
check.setOnClickListener {
if (secret == number.text.toString().toInt()) {
AlertDialog.Builder(this)
.setMessage("宾果")
.show()
} else {
AlertDialog.Builder(this)
.setMessage("没猜中")
.setPositiveButton(getString(R.string.ok), null)
.show()
}
}
创建在(androidTest下)
MainActivityTest.kt
@RunWith(AndroidJUnit4ClassRunner::class)
class MainActivityTest {
@get:Rule
val activityRule = ActivityScenarioRule(MainActivity::class.java)
//测试方法
@Test
fun guessWrong() {
val resources = activityRule.activity.resources
val secret = activityRule.activity.secret
for (i in 0..19) {
if (i != secret) {
//清空文字
Espresso.onView(withId(R.id.number))
.perform(clearText())
//写入文字
Espresso.onView(withId(R.id.number))
.perform(typeText(i.toString()))
//点击按钮
Espresso.onView(withId(R.id.check))
.perform(click())
//判断文字有没显示
Espresso.onView(withText("没猜中"))
.check(matches(isDisplayed()))
//按下Alert确认
Espresso.onView(withText(resources.getString(R.string.ok)))
.perform(click())
}
}
}
}
>>: Day 29 Explore monitoring and reporting
各位早上起床的第一件事是做什麽呢?今天的我是睁开双眼呦~!根据研究,记下每天做的第一件事,对你的生活...
今日题目 题目连结:1566. Detect Pattern of Length M Repeate...
4.8 可以为null 的数值型态 实例112 存取可以为null的数值型态 实例113 为Nul...
前言 近期陆续收到许多朋友的来信,询问 Obsidian 可以如何应用。经过几次的讨论,我发现许多人...
今天是30天程序语言研究的第十三天,由於深度学习老师多让我们上了python的进阶课程里面包括之前没...