当前位置: 首页 > 知识库问答 >
问题:

如何确定Android-Espresso测试用例的日期

穆歌者
2023-03-14

这个问题是关于使Android测试用例独立于运行时的日期,即使被测试的内容依赖于电话/模拟器的系统日期。

我想用Espresso测试我的Android应用程序中的一个视图,这取决于当前的日期。它基本上是一个日历:我有一个listview,每一天都有一行,我可以点击一天来获得当天的详细信息视图:

    <ListView
    android:id="@android:id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/toolbar"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:headerDividersEnabled="false"/>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/cp_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_month_time_record">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Toolbar Title"
    android:layout_gravity="center"
    android:id="@+id/toolbar_title"
    style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"/>

</android.support.v7.widget.Toolbar>
onData(anything()).inAdapterView(withId(android.R.id.list)).atPosition(5)
            .perform(click());

如果我在2016年5月运行此测试,ActionBar将显示“wed,4.May'16”,但如果我在2016年6月运行此测试,ActionBar将显示“sat,4.Jun'16”。

那么我怎么告诉Espresso把这个测试的日期固定在某一天呢?

共有1个答案

庄瀚玥
2023-03-14

我有同样的需求使用一个固定的日期时间。我的解决方案是创建一个包装类来访问当前日期/时间。这个类被设计为单例,在我的测试中,我用一个新实例替换了静态单例实例。这个新的配置总是报告相同的“当前”日期/时间,并且可以更改为新的日期/时间。

 类似资料:
  • 在Android Espresso测试中有什么好的方法来测试结果代码和数据吗?我在用浓缩咖啡2.0。 定义一个新方法,如并使用该方法以便可以截获,等等。 编写一个只用于测试的TestActivity,它将调用上的,并在中检查结果 试着思考这两个坏处中什么是较小的,或者是否有任何其他关于如何测试这一点的建议。有什么建议吗?谢了!

  • null 和之间的主要区别是什么? 必须修改源代码才能集成这些框架吗? 一个框架比另一个框架有什么优势吗?如果是,那么哪个框架最适合Android应用程序的UI自动化?

  • 本文向大家介绍Android 创建Espresso测试类,包括了Android 创建Espresso测试类的使用技巧和注意事项,需要的朋友参考一下 示例 将下一个Java类放在src / androidTest / java中并运行它。            

  • 因为我们的测试环境不使用HTTPS,所以我们对Android 9的UI测试失败了。问题是,我们正在从espresso测试中进行网络调用(例如,直接在后端创建全新的用户以用于测试),这意味着它们在espresso测试应用程序上运行。 将networkSecurityConfig添加到应用程序清单无济于事,因为问题不在于应用程序,而在于espresso应用程序。 我怎么才能修好这个?espresso应

  • 我有一些问题设置/运行espresso测试的Android。我的TestClass如下所示:- 在设备仿真器-5554上启动检测Android.test.InstrumentationTestRunner 向Eclipse发送测试信息 测试完成 没有提到运行测试,测试也不会运行。我会错过什么?