Android Studio Instrumentation测试:确定是否将私有视图添加到父级

时间:2016-05-11 18:10:45

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

我已开始将单元测试(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. 如果视图是私有的,我该如何处理上述情况?
  3. 对于第2部分,我知道我可以为视图创建一个吸气剂,但对我来说,这就失败了。我只会为测试添加它!

    欢迎所有建议,谢谢!

1 个答案:

答案 0 :(得分:0)

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

单元测试

使用此方法在 Android框架上运行无依赖关系的单元测试,或者具有模拟对象可以满足的依赖关系。

集成测试

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

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

对于您的测试类型更有用Espresso框架。它使用起来非常简单。在这里,您有lesson如何在单个应用中测试用户界面。