Android程序等待1,android – Espresso如何等待一段时间(1小时)?
在我的測試用例中,我必須記錄1小時,在機器人solo.sleep(600000)完成了我的工作,但在espresso我感到困惑IdlingResource的概念.我必須開始錄音并等待一段時間(取決于測試的類型)15分鐘,60分鐘等
機器人中的等效代碼
solo.clickOnView(solo.getView("start_record"));
solo.sleep(duration * 60 * 1000);
solo.clickOnView(solo.getView("stop_record"));
我嘗試在espresso中使用它
@RunWith(AndroidJUnit4.class)
@SmallTest
public class AaEspressoTest {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.absd.rec.RecorderActivity";
private static Class> launcherActivityClass;
private Solo solo;
private static CoreRecordingTest skyroTestRunner;
private static Class extends Activity> activityClass;
static {
try {
activityClass = (Class extends Activity>) Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@Rule
public final ActivityTestRule> activityRule
= new ActivityTestRule<>(activityClass);
private IntentServiceIdlingResource idlingResource;
@Before
public void registerIntentServiceIdlingResource() {
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
idlingResource = new IntentServiceIdlingResource(instrumentation.getTargetContext());
Espresso.registerIdlingResources(idlingResource);
}
@After
public void unregisterIntentServiceIdlingResource() {
Espresso.unregisterIdlingResources(idlingResource);
}
@Test
public void testHello() throws Exception {
onView(withId(AaEspressoTest.getId("recorderpage_record"))).perform(click());
registerIntentServiceIdlingResource();
onView(withId(AaEspressoTest.getId("recorderpage_stop"))).perform(click());
}
}
空閑資源
public class IntentServiceIdlingResource implements IdlingResource {
private final Context context;
private ResourceCallback resourceCallback;
public static boolean status = false;
public IntentServiceIdlingResource(Context context) {
this.context = context;
}
@Override
public String getName() {
return IntentServiceIdlingResource.class.getName();
}
@Override
public boolean isIdleNow() {
return getTimer();
}
@Override
public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
this.resourceCallback = resourceCallback;
}
private static boolean getTimer() {
new CountDownTimer(5000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// Do Nothing
status = false;
}
@Override
public void onFinish() {
status = true;
}
};
return status;
}
}
例外:
android.support.test.espresso.IdlingResourceTimeoutException: Wait for [com.adbs.recorder.IntentServiceIdlingResource] to become idle timed out
總結
以上是生活随笔為你收集整理的Android程序等待1,android – Espresso如何等待一段时间(1小时)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio编译找不到程
- 下一篇: 怎么改为黑色电脑如何变黑色