android-espresso 相关问题

Espresso是一个用于编写Android UI测试的库。也被称为Google的Android测试工具

Androidx:如何在 UI 测试中测试 Slider(Espresso)?

如何在滑块(移动光标)上执行操作? 如何检查滑块值? 是否有任何现有的功能? 滑块看起来像这样: 如何在滑块上执行操作(移动光标)? 如何检查滑块值? 有现成的功能吗? 滑块看起来像这样: <com.google.android.material.slider.Slider android:id="@+id/sliderRating" android:layout_width="match_parent" android:layout_height="wrap_content" android:stepSize="1" android:valueFrom="1.0" android:valueTo="5.0" /> 浓缩咖啡检查:onView(withId(R.id.sliderRating)).check( -> TODO <- ) 创建几个方法来做到这一点很容易。 这是我所拥有的: fun withValue(expectedValue: Float): Matcher<View?> { return object : BoundedMatcher<View?, Slider>(Slider::class.java) { override fun describeTo(description: Description) { description.appendText("expected: $expectedValue") } override fun matchesSafely(slider: Slider?): Boolean { return slider?.value == expectedValue } } } fun setValue(value: Float): ViewAction { return object : ViewAction { override fun getDescription(): String { return "Set Slider value to $value" } override fun getConstraints(): Matcher<View> { return ViewMatchers.isAssignableFrom(Slider::class.java) } override fun perform(uiController: UiController?, view: View) { val seekBar = view as Slider seekBar.value = value } } } 第一个是自定义视图匹配器,用于测试 Slider 是否具有特定值,第二个是自定义视图操作,用于设置新值。 使用它们的简单测试示例只是为了了解它们的工作原理: @Test fun testSlider() { onView(withId(R.id.sliderRating)).check(matches(withValue(1.0F))) onView(withId(R.id.sliderRating)).perform(setValue(2.0F)) onView(withId(R.id.sliderRating)).check(matches(withValue(2.0F))) } 此测试首先检查滑块的值是否为 1.0,然后将其值更改为 2.0,并使用匹配器检查该值现在是否为 2.0。 我有 kotlin 中的代码,但如果你需要 java 中的代码,它可以很容易地转换(android studio 可以做到这一点)。由于问题没有标记语言,我不知道您需要哪一种,下次标记它。 如果您正在使用OnSliderTouchListener,这里是解决方案。 fun Slider.setValueAndClick(value: Float) { this.value = value val baseSliderClass = this.javaClass.superclass val touchListenersField: Field = baseSliderClass.getDeclaredField("touchListeners") touchListenersField.isAccessible = true val listeners = touchListenersField.get(this) as? List<*> val listener = listeners?.find { it is Slider.OnSliderTouchListener } if (listener == null) return for (method in listener.javaClass.declaredMethods) { if (method.name == "onStopTrackingTouch") { Log.e(TestUtils::class.simpleName, method.) method.isAccessible = true method.invoke(listener, this) break } } } }

回答 2 投票 0

androidTest 没有给出任何结果

我正在运行 UI 测试,但它只是不断加载,没有给出任何成功或失败,但如果我在另一个 Android Studio 上运行测试,则相同的代码会成功。我已经重新安装了 Android

回答 1 投票 0

Espresso 中的条形码扫描

上下文: 我必须在 Espresso 中编写一个自动化测试,通过按设备的红外 (IR) 扫描仪按钮从应用程序屏幕(如图 1 所示)扫描条形码。扫描后,如果 bc 是...

回答 1 投票 0

运行UTP测试套件时发生未知平台错误

尝试使用 Circleci 构建 Android 应用程序 Espresso Instrumentation Tests 时,运行 UTP 测试套件时发生未知平台错误。 任务:app:connectedDebugAndroidTest 失败 测试结果...

回答 6 投票 0

通过writeToTestStorage方法保存位图

我尝试用Espresso进行截图测试: 测试 类屏幕截图测试{ @get:规则 var nameRule = 测试名称() @get:规则 var mActivityTestRule = ActivityTestRule(MainActivity::class.java) @测试...

回答 2 投票 0

Android-espresso (Kotlin):通过 writeToTestStorage 方法保存位图

我尝试用Espresso进行截图测试: 测试 类屏幕截图测试{ @get:规则 var nameRule = 测试名称() @get:规则 var mActivityTestRule = ActivityTestRule(MainActivity::class.java) @测试...

回答 2 投票 0

Espresso 测试被后台线程阻止。应用程序不空闲异常:“AppNotIdleException。”

我的 android espresso 单元测试由于某些后台线程不空闲而被阻止。我如何找出哪个线程正在阻止我的应用程序执行? android.support.test.espresso.

回答 4 投票 0

Android Espresso webClick() 不适用于输入标签

我的问题是,当我有一个 并尝试使用 webClick() 单击它时,没有任何反应。

回答 2 投票 0

androidTest(已检测):如何在 Android 8.0 (API 26) 上单击“允许”按钮?

对于仪器化的 androidTest 测试,当应用程序在运行 Android 8 (API 26) 的设备上启动时,我需要单击系统弹出的“允许”按钮: (注:在 Android 14 上(API ...

回答 1 投票 0

Android 仪器测试并未在某些设备上全部运行

我有一个 Android 应用程序,包含 225 次浓缩咖啡测试。 到目前为止,我始终能够在所有设备(三星智能手机和平板电脑,从 Android 7 到 14)上以原始方式运行所有测试 我现在有了一个品牌...

回答 1 投票 0

Espresso 测试期间出现 NoMatchingViewException 错误

我正在做Fragment是否显示的仪器测试。当我开始执行测试时,我可以在物理设备中看到 FragmentLogin 视图,但测试失败,并显示 androidx.test.es...

回答 1 投票 0

androidTest 与 Appium——给定项目都需要吗?

正式的 Android 开发人员文档提供了有关测试 Android 应用程序的基础知识的启发性介绍。 我成功地在 A 中创建了 3 种不同类型的测试设置...

回答 1 投票 0

Android Espresso 集成测试如何在 Activity 的 onCreate 方法之前运行代码?

如何在测试活动中调用 onCreate 之前运行代码? @Before 在 onCreate 之后调用,这会导致问题。 我正在使用 公共 ActivityScenarioRule ActivityScenarioRule = 新

回答 1 投票 0


测试错误 - NoClassDefFoundError:解析失败:Lorg/hamcrest/Matchers

我正在使用 Espresso 进行仪器测试,但在堆栈跟踪上出现此错误: 该错误是由于缺少类引起的,如下所示: 引起原因:java.lang.ClassNotFoundException:没有找到...

回答 4 投票 0

androidx.test.espresso.screenshot.captureToBitmap 与 3.6.x

从 Android Espresso libs 3.6.0 开始,captureToBitmap 已更改 以前的 3.5.x 版本: 有趣的 ViewInteraction.captureToBitmap(): 位图 { 使用它 onView(isRoot()).captureToBitmap().

回答 1 投票 0

Espresso 选择包含布局的子项

我一直在使用 Espresso 通过 Android 应用程序进行自动化 UI 测试。 (我一直在下班在家寻找问题的解决方案,所以我没有确切的例子......

回答 3 投票 0

如何在将活动发送到后台后重新获得对活动的访问权限

使用 Espresso,我尝试测试使用 Home 按钮将 Activity 发送到后台,然后再次将其放在前台进行一些检查: @EspressoTest 公共无效测试(){ 就这样...

回答 5 投票 0

Espresso - 检查 RecyclerView 项目是否订购正确

如何使用 Espresso 检查 RecyclerView 项目是否以正确的顺序显示?我正在尝试测试它,通过每个元素的标题文本检查它。 当我尝试这个时...

回答 5 投票 0

使用 Espresso 2.2.2 进行沉浸式模式确认

由于沉浸式模式确认弹出窗口,Google 云测试服务器上的某些虚拟设备似乎无法正确执行测试(如下所示:https://developer.android.com/training/system...

回答 4 投票 0

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