我有Espresso测试,并希望应用程序保持准确的活动测试结束。我需要继续与app进行互动。
@SmallTest
public void testOpenNavigationDrawer()
{
Espresso.onView(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.content_frame)).perform(ViewActions.swipeRight());
ListView lvDrawerMenu = (ListView) getActivity().findViewById(com.eleks.espresso.example.app.R.id.lvDrawerMenu);
Preconditions.checkNotNull(lvDrawerMenu, "lvDrawerMenu is null");
final int count = lvDrawerMenu.getAdapter().getCount();
Preconditions.checkPositionIndex(2, count, "No 1 index " + count + " size");
Object obj = lvDrawerMenu.getItemAtPosition(2);
Espresso.onView(Matchers.allOf(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.tvItem), ViewMatchers.hasSibling(ViewMatchers.withText(obj.toString())))).perform(ViewActions.click());
}
我该怎么做? 谢谢!
答案 0 :(得分:3)
如果您希望在特定测试后运行该应用,那么您可以进行某些手动交互,甚至只是为了更长时间地查看最终结果。您可以在测试结束时放置一个SELECT *
FROM (
SELECT
*,
MAX(<timestamp_column>)
OVER (PARTITION BY <id_column>)
AS max_timestamp,
FROM <table>
)
WHERE <timestamp_column> = max_timestamp
,让它随时待在那里。
为了想象你可以在睡眠后进行另一次检查(以及你手动进行的任何交互)并继续测试。显然,你不想经常这样做,因为它不利于自动测试。
答案 1 :(得分:1)
如果需要,您也可以使用Breakpoints代替Thread.sleep()
答案 2 :(得分:0)
抱歉,但这是不可能的。
我认为你对自动化测试的想法不太了解。 \
Espresso,Robotium,Calabash和其他UI测试框架是针对短期测试事件而制作的。它模拟用户的特定行为 - 运行应用程序,做一些技巧和(如果成功)而不是关闭应用程序。
当然,Espresso允许您创建自定义空闲资源,而不是在应用程序中注册它。此外,在特定时间内暂停测试的最简单方法是使用方法Thread.sleep(time_in_miliseconds)
,但就像我说的那样反对自动测试的想法。