小编Dmi*_* K.的帖子

在不冻结主线程的情况下在 Espresso Android 中进行延迟测试

我是 Espresso 测试框架的新手。现在我有一个任务来测试一些与异步后端一起工作的应用程序。当第一个活动开始时,一些片段只有在加载后才会出现。这可能需要几秒钟,所以最简单的方法是等待 5-7 秒。但是,使用 IdlingResource 会冻结主线程,因此在等待超时结束之前,我的后端数据无法加载。

这就是我使用 IdlingResource 的方式:

public static class ElapsedTimeIdlingResource implements IdlingResource {
    private final long startTime;
    private final long waitingTime;
    private ResourceCallback resourceCallback;

    ElapsedTimeIdlingResource(long waitingTime) {
        this.startTime = System.currentTimeMillis();
        this.waitingTime = waitingTime;
    }

    @Override
    public String getName() {
        return ElapsedTimeIdlingResource.class.getName() + ":" + waitingTime;
    }

    @Override
    public boolean isIdleNow() {
        long elapsed = System.currentTimeMillis() - startTime;
        boolean idle = (elapsed >= waitingTime);
        if (idle) resourceCallback.onTransitionToIdle();
        return idle;
    }

    @Override
    public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
        this.resourceCallback …
Run Code Online (Sandbox Code Playgroud)

java testing android qa android-espresso

4
推荐指数
2
解决办法
5029
查看次数

标签 统计

android ×1

android-espresso ×1

java ×1

qa ×1

testing ×1