小编stf*_*tfn的帖子

Android Espresso:按住按钮时进行断言

我对Android上的Espresso相当陌生,遇到了以下问题:我希望Espresso对按钮执行longclick(或其他操作。),同时按住按钮,我想检查状态不同的视图。

用(或多或少)伪代码:

onView(withId(button_id)).perform(pressButtonDown());
onView(withId(textBox_id)).check(matches(withText("Button is pressed")));
onView(withId(button_id)).perform(releaseButton());
Run Code Online (Sandbox Code Playgroud)

我尝试使用MotionEvents.sendDown()和.sendUp()编写2个自定义Taps,即PRESS和RELEASE,但没有使其工作。如果这是正确的道路,我可以张贴到目前为止的代码。

编辑:

public class PressViewActions
{
    public static ViewAction pressDown(){
        return new GeneralClickAction(HoldTap.DOWN, GeneralLocation.CENTER, Press.THUMB);
    }

    public static ViewAction release() {
        return new GeneralClickAction(HoldTap.UP, GeneralLocation.CENTER, Press.THUMB);
    }
}
Run Code Online (Sandbox Code Playgroud)

攻丝器的代码:

public enum HoldTap implements Tapper {

    DOWN {
        @Override
        public Tapper.Status sendTap(UiController uiController, float[] coordinates, float[] precision)
        {
            checkNotNull(uiController);
            checkNotNull(coordinates);
            checkNotNull(precision);

            DownResultHolder res = MotionEvents.sendDown(uiController, coordinates, precision);

            ResultHolder.setController(uiController);
            ResultHolder.setResult(res);

            return Status.SUCCESS;
        }
    },

    UP{
        @Override
        public Tapper.Status sendTap(UiController uiController, float[] coordinates, float[] precision)
        { …
Run Code Online (Sandbox Code Playgroud)

android automated-tests ui-automation android-espresso

5
推荐指数
1
解决办法
1775
查看次数