问题标签 [instrumented-test]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android Kotlin Espresso 在单元测试中断言预期活动抛出错误
我正在开发一个 Android 应用程序。我正在向我的应用程序添加仪器测试并测试是否使用 Espresso 启动了活动。但是我在断言使用 Espresso 测试框架启动活动时遇到错误。
我将以下快递包添加到我的应用程序 gradle 中
这是我的活动课
这是我的测试方法
当我运行测试时,出现以下错误。
我的代码有什么问题,我该如何解决?
我尝试将我的代码更改为以下内容以摆脱 Null 异常
然后我得到了这个错误
android - Android单元测试活动是否以超时或延迟开始后不起作用
我正在使用 Kotlin 编程语言开发一个 Android 应用程序。我正在将仪器测试添加到我的项目中。现在,我在测试活动是否在延迟后开始时遇到问题。我正在使用 Espresso 进行仪器测试。
这是我的活动课
我试过这个
我收到了这个错误
我也试过这个
这次我收到了这个错误
那也不行。我该如何测试它?
android - 有没有办法停止在 Android 仪器测试 Kotlin (ActivityTestRule) 中启动活动
我正在使用 Kotlin 开发一个 Android 应用程序。我正在将仪器测试添加到我的项目中。现在,我正在寻找一种方法来启用/禁用启动活动的逻辑,因为它可以使我的测试以意想不到的方式表现。
这是我的测试课
这只是测试类的签名。正如您在代码中看到的,我正在测试 LoginActivity。单击按钮时,LoginAcitivy 正在启动另一个活动。有没有办法禁止在测试中启动活动。然后在另一种测试方法中,我可能会再次启用它。有没有办法做到这一点?
android - Android Kotlin 仪器测试测试是否在调用 finish() 启动另一个活动后结束/完成
我正在使用 Kotlin 开发一个 Android 应用程序。我正在我的项目中添加仪器测试。现在,我正在努力测试是否在启动另一个活动后没有打开一个活动。这是我的场景。
我有启动 LoginActivity 的 MainActivity。
这是 MainActivity 的代码
正如您在上面的代码中看到的,我在启动 LoginActivity 后调用了 finish() 方法来终止活动。我想测试是否在由主活动启动的登录活动中按下后退按钮,应用程序是否关闭并且它不会返回到主活动。
这是我的测试课
请注意代码中的注释。我喜欢断言主活动是否未打开,或者在登录活动中按下后退按钮时它不会返回主活动。我该如何测试它?
android - Android Instrumented 测试是否通过 onActivityResult 回调打开活动
我正在使用 Kotlin 开发一个 Android 应用程序。我正在为我的代码编写仪器测试。现在我正在努力为特定功能编写仪器测试。以下是我要为其编写测试的场景。
我有三个活动,LoginActivity、RegisterActivity 和 HomeActivity。LoginActivity 使用 startActivityForResult 方法启动 RegisterActivity。然后在RegisterActivity中,注册完成后,使用finishActivity方法完成活动。所以调用了LoginActivity类的onActivityResult回调。在 onActivityResult 中,它使用 startActivity 方法启动 HomeActivity。
那么,当在 RegisterActivity 中完成注册时,如何测试 HomeActivity 是否在 LoginActivity 的 onActivityResult 回调中启动?
这是我当前不完整的代码,试图测试该特定功能
但是上面的测试不起作用。它失败。如何正确测试我的场景?
这就是我在 RegisterActivity 类中完成活动的方式
这是 LoginActivity 类中的 onActivityResult 回调
这是错误
2019-10-21 14:51:08.642 25433-25461/com.example.memento E/TestRunner: ----- 开始异常 ----- 2019-10-21 14:51:08.642 25433-25461/com .example.memento E/TestRunner:junit.framework.AssertionFailedError:想要匹配 1 个意图。实际上匹配了 0 个意图。
当我使用实际设备手动测试时,一切都按预期工作。
android - 无法再在 Android Studio 中运行单独的插桩测试
大约两个月以来,我一直无法在 Android Studio 中运行单独的 UI 测试。右键单击测试名称,然后run <test name>
给我错误No tests were found
。如果我右键单击类名然后单击run <testing class name>
,它会成功运行类中的所有测试。因此,为了只在一个类中运行一个单独的测试,我必须诉诸注释掉我不想运行的所有测试,然后从类名中单击运行,这很痛苦。这在几个月前曾经工作得很好。
我真的没有更多的信息可以去。唯一的输出是
firebase - 在插桩测试中,如何在禁用网络时使 Cloud Firestore 写入命令成功?
因此,我尝试仅将 Cloud Firestore 离线缓存用作我的仪器测试的 API,以避免在集成测试期间必须从服务器数据库读取和写入。
首先,在我的测试设置方法中,我调用了这个方法
然后,在每个相关测试开始时,我使用
在那个 put 方法中,我有以下代码:
我正在调用 set() 方法并等待成功的结果,以便能够返回操作成功,然后更新我的 UI。
发生的情况是缓存数据库写入正确,但“set()”函数超时,因为数据库处于脱机模式。我读过 Firestore 仅在正确写入服务器数据库时才确认成功。如果是这种情况,我不知道在严格以离线缓存模式运行时是否可以让这个调用不超时。
是否有解决方案让 Firestore 将本地缓存数据库视为事实来源并在离线模式下返回成功,仅用于测试?
android - 如何在Kotlin编程语言的Android Espresso中测试textview的背景是否是正确的可绘制集合xml资源
我正在使用 Kotlin 开发一个 Android 应用程序。我正在向我的应用程序添加仪器测试。如果在 XML 资源中设置正确的可绘制文本,我在测试 textview 的背景时遇到问题。
我正在像这样以编程方式设置文本视图的背景。
在 expresso 中,我想断言文本视图是使用正确的 XML 资源设置的。我怎样才能做到这一点?
android - Android 检测测试在每个测试方法的开头使用 GrantPermissionRule 手动授予权限
我正在使用 Kotlin 开发一个 Android 应用程序。我正在为我的应用程序编写仪器测试。我正在使用 GrantPermissionRule 在我的测试中授予权限,如下所示。
但是,这不符合我的要求。每次完成后,我都会清除所有授予的权限。另外,我喜欢测试未授予权限的场景。我像这样在我的测试中明确启动活动。
我喜欢在启动活动之后或之前使用 GrantPermissionRule 显式授予权限。我怎样才能做到这一点?
android - Android 测试编排器未找到任何测试
我正在使用 Kotlin 编程语言开发一个 Android 应用程序。我正在为我的应用程序编写仪器测试。我还使用测试编排器来运行我的检测测试。但是安装了修改Grandle文件的测试编排器后,我无法在Android Studio中运行测试。
我在 app.grandle 文件中添加了以下配置
有了这个
这是 MockTestRunner 类
导入 android.app.Application 导入 android.content.Context 导入 androidx.test.runner.AndroidJUnitRunner 导入 com.example.utils.MockApplicationController
然后,在 Android Studio 中,我尝试通过右键单击代码来运行测试,如下所示。
这是我运行测试时得到的。
从字面上看,没有运行测试。我的配置有什么问题,我该如何解决。如果我删除测试协调器安装,我可以运行测试并且它按预期工作。