在收到第一个 Espresso Intent 匹配器的结果后,是否可以检查第二个 Espresso Intent 匹配器?
Is it possible to check a second Espresso Intent matcher after you receive the result from the first one?
当使用 Android Espresso API 中的 intended(IntentMatcher)
时,是否可以在同一个 Activity 中执行两次?
例如,我单击一个按钮,它会启动一个 Activity 的结果。我检查此 Activity 是否已使用 intended(IntentMatcher)
触发。行得通。
但是,当我得到结果时,我想为另一个 Activity 触发一个 Intent。在这种情况下,同一应用程序包中的本地 Activity 没有结果。
当我在应用程序中手动执行此操作时,它工作正常,但 Espresso 似乎无法在我的测试中检测到第二个 Intent。我错过了什么或者这是不可能的?或者,我 应该 怎么做?可能是我的设计不好。
当我进行检查时,我正在尝试这样做:
intended(toPackage(<packageName>));
intended(hasComponent(hasClassName(<className>)));
第一行匹配但第二行不匹配。即使第二行不完全正确,它似乎也从未在错误日志中显示任何关于第二行的内容 Activity 我实际上正在开始。
另一件增加混乱的事情是,两个意图肯定被触发,因为它在日志中显示。它们似乎是同一个,但细节略有不同——一个是包,一个是组件。它是否将第一个 Intent 的结果记录为 Intent 本身?听起来不太可能,但其他意图来自哪里?我知道这不是我要启动的第二个 Activity,因为即使未调用 Activity(当第一个 Intent 结果失败时)它仍然会触发。
我还考虑过它可能没有被检测到,因为它没有等待足够长的时间来激发第二个意图。如果是这样的话,我会怎么做?我没有看到太多关于在 Espresso 中处理时间敏感的事情的讨论。就像检查进度条是否显示但在不按任何东西的情况下再次隐藏一样。你是怎样做的?也许是同样的答案。
感谢任何帮助!
好的,我找到问题了。我的 IdlingResource 没有工作。
修复后它就像一个魅力:)
当使用 Android Espresso API 中的 intended(IntentMatcher)
时,是否可以在同一个 Activity 中执行两次?
例如,我单击一个按钮,它会启动一个 Activity 的结果。我检查此 Activity 是否已使用 intended(IntentMatcher)
触发。行得通。
但是,当我得到结果时,我想为另一个 Activity 触发一个 Intent。在这种情况下,同一应用程序包中的本地 Activity 没有结果。
当我在应用程序中手动执行此操作时,它工作正常,但 Espresso 似乎无法在我的测试中检测到第二个 Intent。我错过了什么或者这是不可能的?或者,我 应该 怎么做?可能是我的设计不好。
当我进行检查时,我正在尝试这样做:
intended(toPackage(<packageName>));
intended(hasComponent(hasClassName(<className>)));
第一行匹配但第二行不匹配。即使第二行不完全正确,它似乎也从未在错误日志中显示任何关于第二行的内容 Activity 我实际上正在开始。
另一件增加混乱的事情是,两个意图肯定被触发,因为它在日志中显示。它们似乎是同一个,但细节略有不同——一个是包,一个是组件。它是否将第一个 Intent 的结果记录为 Intent 本身?听起来不太可能,但其他意图来自哪里?我知道这不是我要启动的第二个 Activity,因为即使未调用 Activity(当第一个 Intent 结果失败时)它仍然会触发。
我还考虑过它可能没有被检测到,因为它没有等待足够长的时间来激发第二个意图。如果是这样的话,我会怎么做?我没有看到太多关于在 Espresso 中处理时间敏感的事情的讨论。就像检查进度条是否显示但在不按任何东西的情况下再次隐藏一样。你是怎样做的?也许是同样的答案。
感谢任何帮助!
好的,我找到问题了。我的 IdlingResource 没有工作。
修复后它就像一个魅力:)