Espresso测试:访问变量

时间:2017-12-04 17:40:59

标签: android android-espresso

我正在编写我的Android应用程序的数据驱动测试,并已开始将CSV写入espresso测试框架,这将允许我快速设计和更改测试。 Espresso可以验证关于UI的基本信息,例如成功点击和文本输入,但它能处理更高级的逻辑吗?

例如,我尝试根据测试期间发生的一些点击来创建收据。这将在运行时之前计算成本并输入CSV以自动比较实际结果与预期结果。为此,我需要访问收货对象以检查其值?或者至少是显示它的文本框(很简单,但不是我之后的事情)。

那么,有没有办法将主应用程序中存储的对象存储到espresso测试框架中?

1 个答案:

答案 0 :(得分:1)

找到我的问题的答案。

为了获取任何对象/变量,您需要访问它们所在的类。这是使用@Rule标签在浓缩咖啡中实现的:

@Rule
public ActivityTestRule<MainActivity> mainActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class);

从这里你可以做到:

mainActivityTestRule.getActivity();

从那里可以访问所有对象

编辑:

原始图像看起来很好,但我仍然试图确认对象是否实际通过。我的Espresso类中的对象似乎是默认的,就好像构造函数刚刚运行一样。将更新更多信息。

编辑2:

这不适用于对象。在espresso类和主应用程序中放置一个断点并比较它们会显示不同的对象ID。从主应用程序获取对象不会返回处于相同状态的对象。