我只是想在表单末尾测试一个提交按钮。
FormAndroidTest.java:
@Test
public void testSubmitButton() throws Exception {
// Execute
onView(withId(R.id.btnSaveFeedback))
.perform(click());
}
click()
被调用,我可以看到它在应用中执行了点击,但是呼叫永远不会回来(直到超时)。
我已将其缩小为由点击处理程序中的startActivity
调用引起的:
FormActivity.java:
public void onSubmitClicked(View view) {
...
startActivity(new Intent(this, NextActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME));
...
}
我已将其追溯到Espresso的 Tap.java 失败的致电sendUp()
来电:
private static Tapper.Status sendSingleTap(...) {
...
DownResultHolder res = MotionEvents.sendDown(uiController, coordinates, precision);
try {
if (!MotionEvents.sendUp(uiController, res.down)) { <-- THIS TIMES OUT
Log.d(TAG, "Injection of up event as part of the click failed. Send cancel event.");
MotionEvents.sendCancel(uiController, res.down);
return Tapper.Status.FAILURE;
...
}
在其中,uiController.injectMotionEvent(motionEvent);
循环直到注射完成,在这种情况下它永远不会发生和超时。
我认为它必须与我的线程没有解决有关,但我不明白为什么或如何解决它。我已经看到了一些相关的线程,但给定的答案似乎并没有解决我的确切问题。
由于