首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让浓缩咖啡等待由消防呼叫触发的活动?

如何让浓缩咖啡等待由消防呼叫触发的活动?
EN

Stack Overflow用户
提问于 2018-04-30 08:11:30
回答 1查看 2.1K关注 0票数 5

我有一个LoginActivity,它使用firebase作为后端。当我成功地登录时,我的MainActivity就会成功地出现。

如何为此活动更改编写Espresso测试?

通常情况下,Espresso跟踪当前活动本身的方式似乎只适用于不需要等待防火墙的活动。在使用firebase时,我会得到以下错误消息:

android.support.test.espresso.NoMatchingViewException:没有在层次结构中找到匹配的视图: with id:(我的应用程序包):id/with 2

(button2是新活动中按钮的id,但无论我试图在新活动中触及什么视图,都会出现这种情况。)

我也尝试过使用ActivityMonitor和类似的方法。他们似乎根本没有得到任何活动的变化。

Thread.sleep()给人的印象与我想做的完全相反:它似乎暂停了应用程序,而不是测试本身。

我知道我不应该测试firebase本身的功能,但是我的应用程序严重依赖于被登录的用户,而且我很晚才想编写其他测试,这些测试将测试已登录的用户的GUI和功能。

在使用firebaseauth 检查是否应该触发活动时,如何为活动更改编写正确的espresso测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 16:43:02

您需要使用IdlingResource类。Espresso无法判断您的UI何时在等待异步网络调用(如Firebase )。IdlingResource正是为此目的创建的。有一种方法可以解决你的问题。

  1. 在您的代码中,有一些内容可以跟踪您等待网络呼叫的时间。也许是名为isInProgress的布尔值。
  2. 在与测试相同的文件夹中创建一个IdlingResource类,如下所示:

示例:

代码语言:javascript
复制
import android.support.test.espresso.IdlingResource
import com.myexample.MainActivity


class LoginIdlingResource constructor(
        private val mainActivity: MainActivity
) : IdlingResource{

    private var resourceCallback: IdlingResource.ResourceCallback? = null

    override fun getName(): String {
        return LoginIdlingResource::class.java.name
    }

    override fun isIdleNow(): Boolean {
        return !mainActivity.isInProgress() // <----- Important part
    }

    override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback?) {
        this.resourceCallback = callback
    }
}
  1. 在测试中注册IdlingResource类如下所示:

示例:

代码语言:javascript
复制
@get:Rule
val mActivityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)

@Before
fun init() { IdlingRegistry.getInstance()
    .register(RegisterIdlingResource(mActivityTestRule.activity))
}

现在,每当布尔值表示isInProgress时,Espresso就会等待。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50096441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档