小编Seb*_* LG的帖子

测试错误:MyActivity已经设置内容。如果您已使用 ComposeView 填充 Activity,请确保在该 ComposeView 上调用 setContent

使用最新版本的 Compose 1.2.0 运行 Robolectric 单元测试时,测试createAndroidComposeRule失败并出现以下错误:

MyActivity 已经设置了内容。如果您已使用 ComposeView 填充 Activity,请确保在该 ComposeView 上调用 setContent,而不是在测试规则上调用;并确保setContent {}在 ComposeTestRule 运行后完成调用

来自失败测试之一的代码:

composeTestRule.setContent {
    Column {
        Text(textTitle)
        DemoScopedInjectedViewModelComposable()
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-testing android-jetpack-compose

13
推荐指数
2
解决办法
3848
查看次数

Espresso - typeText()无法正常工作,有时字母丢失

我开始登录活动,并在Espresso测试中使用:

onView(withId(R.id.username)).perform(typeText("USERNAME"));
Run Code Online (Sandbox Code Playgroud)

我希望该字段中的文本为"USERNAME",但有时我会收到"SERNAME",其他人会收到"UERNAME".

它大部分时间都可以工作但有时会失败,特别是在重启手机后.

以下是重现该错误的示例代码:https: //github.com/neoranga55/CleanGUITestArchitecture

android android-espresso

9
推荐指数
2
解决办法
1462
查看次数

在棉花糖中授予ACCESS_MOCK_LOCATION使用adb进行测试的权限失败

这是问题的根源:

  1. 在调试清单中添加模拟位置权限 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
  2. 安装在手机应用程序的调试版本(在摇篮:debug { debuggable true }
  3. 尝试使用adb授予权限: adb shell pm grant com.myapp.name android.permission.ACCESS_MOCK_LOCATION

命令的结果为:

不允许的操作:java.lang.SecurityException:权限android.permission.ACCESS_MOCK_LOCATION不是可更改的权限类型”

如果我转到手机上的开发人员选项并进行设置Setting >> Developer Option >> Select Mock location app

我需要进行自动测试,因此显然进入电话设置的选项无效,因为在每次安装该应用程序时都会重置该选项,因此我需要adb选项才能工作。

permissions android automated-tests

3
推荐指数
1
解决办法
2118
查看次数