java - Android 中@SmallTest、@MediumTest 和@LargeTest 注解的用途是什么?

标签 java android unit-testing tdd android-espresso

我是 Android 新手,我看过使用这些注释的示例代码。例如:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

那个注解有什么作用?

最佳答案

This blog post 解释得最好。基本上是这样的:

testing chart

  1. 小:此测试不与任何文件系统或网络交互。
  2. 中:访问正在运行测试的盒子上的文件系统。
  3. 大型:访问外部文件系统、网络等。

根据 Android Developers blog ,小测试应该 < 100 毫秒,中测试 < 2 秒,大测试应该 < 120 秒。

The answer from azizbekian 展示了如何在运行测试时使用注释。

此外,this old out-of-date page 还有更多信息。具体来说,如何将 am instrument 工具与 adb shell 一起使用。以下是相关部分:


我的仪器选项

am instrument 工具将测试选项传递给 InstrumentationTestRunner 或键值对形式的子类,使用 -e 标志,语法如下:

-e <key> <value>

有些键接受多个值。您在逗号分隔的列表中指定多个值。例如,此 InstrumentationTestRunner 调用为 package 键提供多个值:

$ adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \
> com.android.test/android.test.InstrumentationTestRunner

下表描述了键值对及其结果。请查看下表中的使用说明。

<头>
值(value) 说明
尺寸 [小 |中 |大] 运行按大小注释的测试方法。注释是@SmallTest、@MediumTest 和@LargeTest。

所以阅读上面的内容,你可以指定这样的小测试:

$ adb shell am instrument -w \
>   -e package com.android.test.package1,com.android.test.package2 \
>   -e size small \
>  com.android.test/android.test.InstrumentationTestRunner

关于java - Android 中@SmallTest、@MediumTest 和@LargeTest 注解的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671923/

相关文章:

Java 当使用 Process#start() 时,抛出 IOException

android - 找不到(包名称)。在以下位置搜索 :

android - android 中用于显示 fragment 的最小屏幕尺寸

java - 在 tomcat 上配置 SSL

java - 在 JSON 对象中解析 JSON 数组

java - TestNG - 如何断言两个列表相等而忽略顺序?

java - JUnit 4 入门

c++ - 如果我想测试 C++ 代码,应该将其编写为静态库还是动态库?

java - 没有为范围名称 'restart' 注册范围

android - 正确隐藏 ListView 中的项目