【问题标题】:Unit Testing in Android? [closed]Android中的单元测试? [关闭]
【发布时间】:2015-05-11 12:55:17
【问题描述】:

我使用的是 Android Studio 1.2

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

public int add(int a,int b) {
    return a+b;
}

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

我发现从官方 DEV 网站开始测试基础知识很困难,因此希望提供示例代码或执行单元测试的详细教程。

【问题讨论】:

  • @2Dee 我相信这是主题?不是吗?请让我知道为什么如果不是这样我可以学习谢谢先生
  • 该页面上的第 4 点指出,要求推荐工具或教程的问题与 SO 无关。这是因为自以为是或仅链接的答案比此类问题的正确方法更有可能。考虑一下:如果我们必须在这个网站上回答您的问题,那么对于问答格式来说答案会太长,而博客文章或官方文档页面更适合您的问题。我记得在最新的Android Weekly 时事通讯之一中读到了一些关于测试的内容,不过……

标签: android unit-testing android-testing


【解决方案1】:

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

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

Testing Fundamentals 页面主要讨论 Android Instrumentation 测试,正如您所说,开始使用它有点困难。

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

来自Unit testing support 页面:

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

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

项目名称/app/src/test/java/com/domain/appname/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);        
    }
}

【讨论】:

  • 这确实很有帮助,我现在非常接近在您的帮助下测试我的应用程序所以我该如何运行这个测试我知道我们可以 Testcase X = new MyAdderTest("testAdd");我打电话给 X.run();所以你能帮我看看我在哪里写这段代码???
  • 你能帮我做模拟测试吗
  • 您可以使用./gradlew test --continue从命令行运行测试,或者在Android Studio中右键单击测试类并选择“运行...”考虑先熟悉Mockito,然后在网上搜索有关在 Android 中模拟的内容。一旦您有具体问题,请在 StackOverflow 上打开一些新问题。
猜你喜欢
  • 2012-12-13
  • 1970-01-01
  • 2012-09-23
  • 2010-12-21
  • 1970-01-01
  • 2010-09-08
  • 2011-11-07
  • 2010-12-21
  • 2017-12-16
相关资源
最近更新 更多