android - 在使用 Espresso 应用程序运行 android 测试期间,在登录状态的主页上启动
问题描述
我使用 Espresso 框架为 android 应用程序创建自动化测试。但是对于我运行的任何测试 - 由于某种原因,主页(用户登录后的第二页)上的应用程序星号。我重新安装了我的模拟器以确保它不会兑现任何东西 - 但在第一次测试运行之后(在第一个测试步骤之前) - 应用程序在主屏幕上运行。有没有人有这样的东西?
解决方案
这是一个片段,它告诉 Espresso,在开始测试时应该使用哪个活动。(也请检查 JUnit 版本)。
@LargeTest
@RunWith(AndroidJUnit4.class)
public class clickButtonTest {
@Rule
public ActivityTestRule<YourActivityName> mActivityTestRule =
new ActivityTestRule<>(YourActivityName.class);
private YourActivityName mainActivity;
@Before
public void setActivity() {
mainActivity = mActivityTestRule.getActivity();
// Here you add required initializations / definitions
}
@Test
public void clickButton () {
// Click on button
onView(withId(R.id.button_id)).perform(click());
ActivityTestRule 你给了你想要 Espresso 执行的 Activity,这样当你开始测试时就会打开这个视图。在这种情况下,您需要找到正确的活动,在这种情况下应该是用户登录屏幕?要在您的应用程序中查找活动,您需要打开 AndroidManifest.xml 并找到合适的活动。关于 AndroidManifest.xml
找到正确的活动后,将其填充到“YouActivityName”块中。然后按应有的方式填写@Test。这取决于您计划如何设计测试用例,但良好的做法是测试彼此独立,它们不相互依赖,因为这通常会导致不稳定。
此外,还有阅读有关 Gradle、动画和其他 Espresso 的好资源。浓缩咖啡设置
推荐阅读
- python - 删除重复条目并提取所需信息
- embedded-linux - 致命错误:无效 -march= 选项:'armv5t'
- rest - 找不到404的问题如何解决?
- vb.net - 如何使用 tls 和 vb.net API post call 通过 sendgrid 发送加密电子邮件?
- cefsharp - 在运行使用 cefsharp 的主机应用程序时调试 libcef.dll
- html - 读取类中的 li 标签内的文本
- google-apps-script - 如何在谷歌应用脚本中从旧版编辑器切换到新编辑器?
- javascript - 服务器端排序结果在 Ngx-datatable 中以错误的顺序显示
- python - 带有 Numpy 的多项式
- javascript - d.setDate(d.getDate()+7) 返回一堆数字