Android中的单元测试?

Pra*_*ada 2 android unit-testing android-testing

我使用的是Android Studio 1.2

假设我在一些MyAdder类中添加了一个简单的方法

public int add(int a,int b) {
    return a+b;
}
Run Code Online (Sandbox Code Playgroud)

我想执行单元测试并使用断言来执行上述代码的测试.

我发现很难,首先从官方DEV站点测试基础知识,以便获得执行单元测试的示例代码或详细教程.

unr*_*gnu 6

支持两种类型的测试,可在Build VariantsAndroid Studio工具窗口的下拉菜单中找到:

  1. Android Instrumentation测试:使用设备或模拟器上正在运行的应用程序进行集成/功能测试,通常称为Android测试
  2. 单元测试:在本地JVM上运行的简单JUnit测试,提供了存根的android.jar

" 测试基础知识"页面主要讨论Android测试测试,正如您所指出的那样,开始使用它有点困难.

但是,对于您的问题,您只需要单元测试.

单元测试支持页面:

  1. 更新build.gradle以使用android gradle插件版本1.1.0-rc1或更高版本(在build.gradle文件中手动或在File> Project Structure中的UI中)
  2. 向app/build.gradle添加必要的测试依赖项
dependencies {
  testCompile "junit:junit:4.12"
}
Run Code Online (Sandbox Code Playgroud)
  1. 在Settings> Gradle> Experimental中启用单元测试功能.(自Android Studio 1.2启用且不再具有实验性)
  2. 同步您的项目.
  3. 打开"构建变体"工具窗口(左侧)并将测试工件更改为"单元测试".
  4. 为测试源代码创建一个目录,即src/test/java.您可以从命令行或使用"项目"工具窗口中的"项目"视图执行此操作.此时,新目录应以绿色突出显示.注意:测试源目录的名称由gradle插件根据约定确定.

下面是一些示例代码,用于测试问题中的实例方法(替换com/domain/appname为包名称创建的路径):

项目名称/应用程序/ SRC /测试/ JAVA/COM /域/应用程序的名字/ MyAdderTest.java

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class MyAdderTest {
    private MyAdder mMyAdder;

    @Before
    public void setUp() throws Exception {
        // Code that you wish to run before each test
        mMyAdder = new MyAdder();
    }

    @After
    public void tearDown() throws Exception {
        // Code that you wish to run after each test
    }

    @Test
    public void testAdd() {
        final int sum = mMyAdder.add(3, 5);
        assertEquals(8, sum);        
    }
}
Run Code Online (Sandbox Code Playgroud)