【问题标题】:How to test a webService call code using JUnit in android?如何在 android 中使用 JUnit 测试 webService 调用代码?
【发布时间】:2015-04-06 18:18:37
【问题描述】:

我想为我的 android 应用程序编写功能测试用例。我不是在谈论发送点击按钮或 UI 相关事件,我是在提及代码覆盖率或例如我想检查我的解析器是否工作正常,我的登录调用是否成功?总之,如何编写功能测试用例,任何链接或教程都非常感谢。 还有为我的项目设置测试框架的任何建议。我正在开发 Android Studio。

【问题讨论】:

标签: android unit-testing junit functional-testing android-testing


【解决方案1】:

首先,将 JUnit 添加到项目中,方法是将其添加到您的 build.gradle 文件中:

dependencies {
    testCompile 'junit:junit:4.12'
}

然后,确保您有一个与主目录位于同一级别的测试目录,如下所示:

app
└─── src
     ├─── main
     │    ├─── java
     │    │    └─── com.example.app
     │    └───res
     └─── test
          └─── java
               └─── com.example.app

然后你可以继续创建一个测试类,例如:

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class LogicTest {
    @Test
    public void addingNumbersShouldReturnSum() {
        Logic logic = new Logic();

        assertEquals("2 + 2 must be 4", 4, logic.add(2, 2));
    }
}

您可以通过执行 gradlew testDebug 在您的调试版本上运行这些测试,或者如果您有 1.1 或更高版本,则可以从 Android Studio 运行这些测试。 查看http://tools.android.com/tech-docs/unit-testing-support 了解更多信息。

【讨论】:

  • 嗨,凯文,感谢您的回复。所以这意味着,我的每个方法都应该返回一些东西,以便在测试类中验证相同的东西,是吗?那么对于例如的情况呢?一个成功的登录调用,我们直接将用户导航到主页而不是返回一些东西。同样适用于我的解析器类,它们只是将数据设置为模型类,而不返回任何内容。如何处理这些情况?
  • 在这种情况下,您不需要单元测试,而是需要集成测试。如果您想这样做,最简单的方法是设置 Espresso:code.google.com/p/android-test-kit/wiki/…
  • 现在使用 Junit 测试您的 Web 服务响应...findnerd.com/list/view/…
【解决方案2】:

您应该考虑使用 Robolectric。查看deckard-gradle 了解如何设置。

【讨论】:

猜你喜欢
  • 2011-11-15
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多