Android中的单元测试?

时间:2015-05-11 12:55:17

标签: android unit-testing android-testing

我正在使用Android Studio 1.2

假设我有一个简单的方法添加到某个类MyAdder

<system.webServer>
  <defaultDocument>
    <files>
      <clear />
      <add value="MyPage.aspx" />
    </files>
  </defaultDocument>
</system.webServer>

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

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

1 个答案:

答案 0 :(得分:6)

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

  1. Android Instrumentation Tests:在设备或模拟器上使用正在运行的应用进行集成/功能测试,通常称为Android测试
  2. Unit Tests:在本地JVM上运行的简单JUnit测试,提供了存根的android.jar
  3. Testing Fundamentals页面主要讨论Android Instrumentation测试,正如您所指出的那样,有点难以入手。

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

    来自Unit testing support页面:

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

    以下是一些示例代码,用于测试问题中的实例方法(将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);        
        }
    }