浓缩咖啡会暂停从第三方库开始的活动

时间:2019-04-16 06:58:57

标签: android android-espresso ui-testing

我正在尝试使用espresso进行一些ui测试,但是当它进入通过库创建的活动时,espresso不会执行任何操作。浓缩咖啡似乎暂停并等待,直到库活动完成并恢复其余命令。

测试类:

这是我的测试课。

@RunWith(AndroidJUnit4.class)
public class MainActivityTest{

  @Rule
  public ActivityTestRule<MainActivity> activityTestRule =
    new ActivityTestRule<>(MainActivity.class);

  @Test
  public void startTest) throws Exception {
    // starts KEYBOARD_ACTIVITY
    onView(withId(R.id.button_start)).perform(click());

    // test pauses here!!

    // pressBack supposed to go back to MainActivity,
    // but this doesnt do anything either
    // pressBack();

    // click random coordinates several times
    onView(withId(R.id.KEYBOARDAREA)).perform(clickXY(randomCoordinates));


    // This supposed to finish the KEYBOARD_ACTIVITY and go back to MainActivity
    onView(withId(R.id.button_done)).perform(click());

  }

问题是单击 button_start 后,测试立即暂停,如果我什么都不做,则测试会在一分钟左右的时间内因超时(?)而失败,或者如果我退出KEYBOARD_ACTIVITY,自R.id.KEYBORDAREA消失以来,测试将继续,并放置nullpointer异常错误。

关于图书馆:

我的MainActivity带有一个按钮,可以使用MainActivity中的以下代码启动新的活动:

Intent intent = KEYBOARD_ACTIVITY.makeIntent(MainActivity.this, params);
startActivityForResult(intent, REQUEST);

由于已经作为模块依赖项添加的.aar库通过使用params本身创建了一个活动,因此我在项目内部没有活动类文件;相反,我在AndroidManifest.xml中添加了 activity ,就像添加其他活动一样。在键盘活动期间,应该让用户触摸键盘并最后点击“完成”,然后结果返回MainActivity并显示结果。

该库由使用jni(用于加密用户输入)的一些C文件以及处理外观,参数,活动等的Java代码组成。

我到目前为止所做的:

  1. 我尝试通过以下规则从KEYBOARD_ACTIVITY开始测试:

    @规则 public ActivityTestRule activityTestRule =     新的ActivityTestRule <>(KEYBOARDACTIVITY.class)

但是它给出了nullPointerException错误,提示试图调用虚拟方法

  1. 我也尝试了UiAutomator,但是它像浓缩咖啡一样暂停并恢复。

有人经历过这样的事情吗?就像浓缩咖啡对外部库调用的活动什么都不做? 还是有人知道浓缩咖啡其他活动的访问权限级别(如果存在)?也许有诸如浓缩咖啡的测试活动“焦点”之类的东西。

0 个答案:

没有答案