【问题标题】:Android Studio Instrumentation Test: Determine If Private View Was Added To ParentAndroid Studio Instrumentation 测试:确定是否将私有视图添加到父级
【发布时间】:2016-05-11 18:10:45
【问题描述】:

我已经开始将单元测试 (junit 4.12) 合并到我的 Android 项目中。

我遇到的一种情况是确定视图是否已正确添加。

例如在我的ViewToTest 类中:

private TextView _text;

/**
 * Shows all text.
 */
public void showText()
{
    addView(_text);
}

/**
 * Hides all text.
 */
public void hideAllText()
{
    removeView(_text);
}

根据我对单元测试的理解,我应该测试行为而不是方法,但在这种情况下,行为就是方法(如果我错了,请纠正我)。

我的问题分为两部分:

  1. 如何测试_text 是否已添加到父视图?
  2. 当视图为私有时,如何处理上述情况?

对于第 2 部分,我知道我可以为视图创建一个吸气剂,但对我来说这违背了这一点。我只会在测试中添加它!

欢迎所有建议谢谢!

【问题讨论】:

    标签: java android unit-testing junit4 android-instrumentation


    【解决方案1】:

    document 描述了与 Android 应用测试相关的关键概念。但基本上表明你应该使用:

    单元测试

    使用这种方法在 Android 框架上运行无依赖项或具有模拟对象可以满足的依赖项的单元测试。

    集成测试

    仅限您应用中的组件:此类测试验证目标应用在用户执行特定操作或在其活动中输入特定输入时的行为是否符合预期。例如,它允许您检查目标应用程序是否返回正确的 UI 输出以响应应用程序活动中的用户交互。像 Espresso 这样的 UI 测试框架允许您以编程方式模拟用户操作并测试复杂的应用内用户交互。

    跨应用组件:此类测试验证不同用户应用之间或用户应用与系统应用之间交互的正确行为。例如,您可能想要测试当用户在 Android 设置菜单中执行操作时您的应用程序是否正确运行。支持跨应用交互的 UI 测试框架(例如 UI Automator)允许您为此类场景创建测试。

    对于你的测试类型来说是更有用的 Espresso 框架。使用起来非常简单。在这里,您有一个 lesson 如何在单个应用程序中测试 UI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多