Tag: android espresso

Android Marshmallow:用Espressotesting权限?

Android Marshmallow引入的新权限scheme需要在运行时检查特定权限,这意味着需要根据用户拒绝还是允许访问来提供不同的stream程。 当我们使用Espresso在我们的应用程序上运行自动UItesting时,我们如何模拟或更新权限的状态以testing不同的场景?

在android espresso中检查toast消息

谁会知道如何testing在Android的咖啡吐司消息的外观? 在机器人中,它使用起来很简单,但是开始使用浓缩咖啡,但没有得到确切的命令。

检查Espresso是否显示对话框

我试图用新的android-test-kit(Espresso)写一些testing。 但我找不到任何有关如何检查对话框的信息,并执行一些操作(如点击正面和负面的button等)。 请注意,对话框也可能由WebView显示,而不是由应用程序自行显示。 任何帮助,将不胜感激。 我只需要一个链接,或基本的一些示例代码: 检查是否出现对话框 点击对话框button 与对话框的内部视图交互(如果是自定义视图) 瓶坯在对话框外单击,并检查是否显示(例如,如果在对话框构build器上调用了setCancelable(false) ,并且我们要检查) 谢谢你的build议!

使用Espresso在RecyclerView项目中单击视图

如何使用Espresso来点击RecyclerView项目中的特定视图? 我知道我可以点击位置0的项目使用: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); 但是我需要点击该项目内的特定视图,而不是项目本身。 提前致谢。 – 编辑 – 更确切地说:我有一个RecyclerView ( R.id.recycler_view ),其中的项目是CardView ( R.id.card_view )。 在每个CardView内部,我有四个button(其中包括),我想单击一个特定的button( R.id.bt_deliver )。 我想使用Espresso 2.0的新function,但我不确定这是可能的。 如果不行的话,我想用这样的东西(使用Thomas Keller代码): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); 但是我不知道要把什么放在问号上。

与依赖'com.android.support:support-annotations'冲突。 应用程序(23.1.0)和testing应用程序(23.0.1)的已解决版本不同

build设时,我得到以下错误: Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ. 这些是我的gradle依赖关系 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.1.0' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.squareup:otto:1.3.8' compile 'com.snappydb:snappydb-lib:0.5.2' compile 'com.esotericsoftware.kryo:kryo:2.24.0' compile 'com.google.dagger:dagger:2.0.1' apt 'com.google.dagger:dagger-compiler:2.0.1' compile 'javax.annotation:javax.annotation-api:1.2' compile 'io.reactivex:rxandroid:1.0.1' […]

Android中的@SmallTest,@MediumTest和@LargeTest注解的目的是什么?

我是Android的新手,我已经看到使用这些注释的示例代码。 例如: @SmallTest public void testStuff() { TouchUtils.tapView(this, anEditTextView); sendKeys("HELP SPACE ME PERIOD"); assertEquals("help me.", anEditTextView.getText().toString()); } 这个注释完成了什么?

Kotlin和新的ActivityTestRule:@规则必须公开

我正在尝试在Kotlin中为我的Android应用程序进行UItesting。 由于使用ActivityTestRule的新系统,我不能使它工作:编译正确,在运行时,我得到: java.lang.Exception: The @Rule 'mActivityRule' must be public. at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38) at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runner.Computer.getRunner(Computer.java:38) at org.junit.runner.Computer$1.runnerForClass(Computer.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:98) at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84) at […]

Google Espresso或Robotium

我必须使用自动化的UItesting工具,并且在使用Robotium与Google Espresso之间感到困惑。 两者之间的主要区别是什么? 在一个中是否存在特征而不是另一个?

Espresso:Thread.sleep();

Espresso声称不需要Thread.sleep(); ,但我的代码不工作,除非我包括它。 我连接到一个IP。 连接时显示进度对话框。 我需要sleep ,等待对话解散。 这是我使用它的testing片段: IP.enterIP(); // fills out an IP dialog (this is done with espresso) //progress dialog is now shown Thread.sleep(1500); onView(withId(R.id.button).perform(click()); 我已经试过这个代码, 没有 Thread.sleep(); 但它说R.id.Button不存在。 我唯一能做的就是睡觉。 另外,我已经尝试replaceThread.sleep(); 像getInstrumentation().waitForIdleSync(); 仍然没有运气。 这是唯一的方法来做到这一点? 还是我错过了什么? 提前致谢。