@Test
public void test3_PaySuccessful(){
init();
ViewInteraction amountEditText = onView(
allOf(withId(R.id.et_amount), isDisplayed()));
amountEditText.perform(replaceText("SGD 0.010"), closeSoftKeyboard());
//, withText("Proceed")
ViewInteraction appCompatButton = onView(
allOf(withId(R.id.btn_confirm), isDisplayed()));
appCompatButton.perform(click());
//, withText("Pay")
ViewInteraction appCompatButton2 = onView(
allOf(withId(R.id.btn_confirm), isDisplayed()));
appCompatButton2.perform(click());
//dialog
ViewInteraction appCompatButton3 = onView(
allOf(withId(R.id.confirm_button), withText("Confirm"), isDisplayed()));
appCompatButton3.perform(click());
//have to disable animation in order to pass this.
intended(CoreMatchers.allOf(hasComponent(PaymentSelectionActivity2.class.getName())));
}
我在做Espresso测试时遇到了一个问题,我知道Espresso不能处理动画,所以我在下面做了。-禁用我的测试设备窗口动画,过渡动画和动画师持续时间比例都设置为关闭(这不起作用)-然后我试图在我的代码中添加一个标志(如。espresso_testing=true。如果为true,我的代码将跳过调用所有startAnimation()函数调用。--->这很管用。然而,在编写espresso测试用例时,我不能更改应用程序上的代码。包括上面的一个测试用例。
还有其他办法可以做到这一点吗?提前谢了。
确保不断更新插件:
buildscript {
repositories {
google()
gradlePluginPortal()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
}
}
使用testoptions
中名为animationsdisabled
的新标志:
android {
...
testOptions {
animationsDisabled = true
}
}
来源:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.testoptions.html#com.android.build.gradle.internal.dsl.testoptions:animationsdabiled
窗口动画刻度过渡动画刻度动画师持续时间刻度
来源:https://developer.android.com/training/testing/espresso/setup#set-up-environment
您可以尝试通过命令行使用adb
:
# Turn off animations
adb shell settings put global window_animation_scale 0 &
adb shell settings put global transition_animation_scale 0 &
adb shell settings put global animator_duration_scale 0 &
TestButler.verifyAnimationsDisabled(InstrumentationRegistry.getTargetContext());
您可以尝试为espresso测试创建testrule
和gradle
任务:
来源:https://product.reverb.com/disabling-animations-in-espresso-for-android-testing-de17f7cf236f
我很难说服新的Android构建系统运行测试。在运行测试时,它给出了错误,这在其他问题中已经讨论过,但其中没有任何问题能够解决我的问题。 我已经将它剥离下来,这样我的测试包就完全不依赖于主包(),但仍然存在启动活动的问题。 我的测试活动: 和我的测试类: 建筑的相关部分。等级: 我获得的完整堆栈跟踪是: 我没有包括我的,因为我读到的所有内容都表明,我不需要为添加意图,但是我无论如何都试图这样做,结
浓缩咖啡测试很烦人,因为像这样的代码 给出如下错误
在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候
我正在努力学习如何测试我的Android项目,包括我的导航。我已经实现了一个navHost片段作为NavController,并使用它设置动作栏后退按钮,以便在片段中移动。我不知道如何访问这个后退按钮,以便我可以通过浓缩咖啡测试它。 以下是主活动中onCreate函数的相关代码: 这是一个相关的堆栈溢出页面,但他们正在询问主页按钮,我正在尝试使用后退按钮:如何使用Espresso测试操作栏上的主页