标签: android-testing

安卓。机器人电子。测试 AccountManager 结果

在我的应用程序中,我使用客户经理的方法来获取所有者电子邮件。如何使用 Robolectric 测试此方法?我应该为此目的使用嘲讽吗?如果我是对的,我可以使用 Mockito 吗?有什么教程我可以做到吗?

junit mockito robolectric android-testing

5
推荐指数
1
解决办法
1335
查看次数

Android 测试中的模拟 Api 响应

我正在寻找一种在 android 测试中模拟 api 响应的方法。

我已经读过机器人电可以用于此,但我真的很感激这方面的任何建议。

android robolectric android-testing

5
推荐指数
1
解决办法
4733
查看次数

如何在 Android 设备中模拟计步器传感器?

我想模拟用户的步行并计算他们的步数以进行自动测试。

我试图搜索解决方案,但只找到了模拟位置

android autotest android-testing

5
推荐指数
1
解决办法
1万
查看次数

用于测试的 Webview 元素检查

我们的应用程序中有一个 Web 视图,它被检测为单个网页元素 (android.webkit.WebView)。不显示布局层次结构来检查单个 UI 组件。我尝试使用“UI Automator Viewer”和“Appium Inspector”检查元素,结果相同。是否有任何其他工具可用于检查 Web 视图?请指教!

ui-automation android-testing appium android-uiautomator

5
推荐指数
1
解决办法
4296
查看次数

如何在 MaterialDialog 中访问 editText 并执行打字(Android ui 测试)

在此处输入图片说明

这是我的代码

@RunWith(AndroidJUnit4.class)
@LargeTest
public class ChangeTextBehaviorTest {

public static final String STRING_TO_BE_TYPED = "Espresso";

@Rule
public ActivityTestRule<LandingActivity> mActivityRule = new ActivityTestRule<> (
        LandingActivity.class );

@Test
public
void changeText_sameActivity () {
    String testText = "testText";
    onView ( withId ( R.id.action_a) )
            .perform ( click (), closeSoftKeyboard () );
    onView ( withHint ( R.string.add_list ) ).perform ( typeTextIntoFocusedView ( testText ) );
    onView ( withText ("ADD" ) ).perform ( click () );

}
Run Code Online (Sandbox Code Playgroud)

首先我需要点击floatingButton来打开MaterialDialog

然后我尝试通过它的提示访问 editText 引用

onView ( withHint ( R.string.add_list …
Run Code Online (Sandbox Code Playgroud)

android android-testing android-espresso

5
推荐指数
1
解决办法
1320
查看次数

使用 espresso 的 Android 自动化,无需应用源代码

在没有源代码的情况下,是否无法使用 espresso 自动化 android 应用程序。Gradle 期望这样的结构:

src/main/
src/androidTest/
Run Code Online (Sandbox Code Playgroud)

但我想在不同版本的应用程序上运行这些自动化测试?这是否可以仅通过安装应用程序并运行测试来实现?

这里说它不可能:

使用 Espresso 自动化 Android APK

automation android gradle android-testing android-espresso

5
推荐指数
2
解决办法
4048
查看次数

有没有办法从应用程序/进程崩溃的下一个测试开始继续进行浓缩咖啡测试?

我有一个包含 50 次浓缩咖啡测试的应用程序。在第 10 次测试中,应用程序崩溃,其余测试无法执行。有没有办法可以重新启动应用程序并从下一个测试开始执行?

testing android automated-tests android-testing android-espresso

5
推荐指数
1
解决办法
828
查看次数

如何模拟 android 仪器测试的共享首选项?

我有一个首选项 util 类可以在一个地方存储和检索共享首选项中的数据。

Prefuutils.java:

public class PrefUtils {
  private static final String PREF_ORGANIZATION = "organization";

  private static SharedPreferences getPrefs(Context context) {
    return PreferenceManager.getDefaultSharedPreferences(context);
  }

  private static SharedPreferences.Editor getEditor(Context context) {
    return getPrefs(context).edit();
  }

  public static void storeOrganization(@NonNull Context context,
      @NonNull Organization organization) {
    String json = new Gson().toJson(organization);
    getEditor(context).putString(PREF_ORGANIZATION, json).apply();
  }

  @Nullable public static Organization getOrganization(@NonNull Context context) {
    String json = getPrefs(context).getString(PREF_ORGANIZATION, null);
    return new Gson().fromJson(json, Organization.class);
  }
}
Run Code Online (Sandbox Code Playgroud)

显示 LoginActivity.java 中 PrefUtils 用法的示例代码

@Override public void showLoginView() …
Run Code Online (Sandbox Code Playgroud)

android mockito sharedpreferences android-testing android-espresso

5
推荐指数
1
解决办法
7495
查看次数

如何使用包含重定向的 mockwebserver 测试服务调用?

我正在使用 mockwebserver 来模拟我的 android 应用程序的请求和响应。我正在测试通过一系列 4 次服务调用的登录功能。

  1. 获取访问令牌
  2. 重定向
  3. 获取用户信息(不同的基本网址)
  4. 获取一些其他东西(原始基本网址)

我正在尝试模拟重定向调用的响应。这是我的代码:

@Test
public void testSuccessfulLogin() throws Exception {
    // Post
    server.enqueue(new MockResponse()
            .setResponseCode(HTTP_OK)
            .setBody(getStringFromFile(getInstrumentation().getContext(), "access_token.json")));

    // Redirect
    server.enqueue(new MockResponse().setResponseCode(HTTP_MOVED_TEMP));

    // GET user info
    server.enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(getStringFromFile(getInstrumentation().getContext(), "userinfo.json")));

    // GET some other stuff
    server.enqueue(new MockResponse().setResponseCode(HTTP_OK)
            .setBody(getStringFromFile(getInstrumentation().getContext(), "sts.json")));

    // Init call
    loginWithoutWaiting(Data.serviceLoginUsername, Data.serviceLoginPassword);

    // Debug (need to loop 4 times to get all 4 call paths)
    RecordedRequest request = server.takeRequest();
    request.getPath();
}
Run Code Online (Sandbox Code Playgroud)

我的测试在重定向代码处失败。我不能登入。我在这里找到了一些提示但我不完全了解发生了什么,因此目前无法使其工作。

android robolectric android-testing mockwebserver okhttp3

5
推荐指数
1
解决办法
3780
查看次数

我没有在我的仪器测试中添加 @RunWith(AndroidJUnit4.class)

android 的测试文档和许多其他教程一直说我应该@RunWith(AndroidJUnit4.class)在我的所有仪器测试中包含这一行。但是,我没有在我的任何指令中添加这个注释。测试,仍然所有这些都运行良好。所以,

发生了什么以及为什么要添加 @RunWith(AndroidJUnit4.class)上面的指令。考试班?

android-testing

5
推荐指数
0
解决办法
125
查看次数