【问题标题】:Combine Android instrumentation tests and backend integration tests结合 Android 仪器测试和后端集成测试
【发布时间】:2018-04-18 10:56:39
【问题描述】:

我为一个复杂的基于 Spring 的后端项目管理单元测试和集成测试。测试应通过端到端测试进行扩展,以检查后端和 Android 客户端之间的交互。

一个简单的测试用例应该是“当后端服务器上触发事件时,设备上应该会显示一个通知”

我尝试的第一件事是实现 Android 仪器测试,但在后端交互方面遇到了困难。测试包括对许多不同服务的调用和远程数据库操作,我觉得这种繁重的工作不应该发生在 Android 设备上。另一个问题是让当前的 Spring 测试环境在 Android 环境中工作是一个巨大的 PITA。

我尝试的第二件事是将对 Android 构建工具 gradle 的调用集成到我的测试逻辑中。这意味着我执行了一个像./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=MyTestClass#notificationCheck 这样的命令行调用,并检查了调用是否有积极的执行结果。这产生了一些正确的测试结果,但感觉非常缓慢,因为命令行调用的执行时间相当长。

我使用 Android UI Automator 库进行跨应用程序测试。不能在 Android 设备上模拟与后端之间的调用。

如何在我的普通集成测试中包含 Android 仪器检查以创建端到端测试?对此有什么技术解决方案?这种情况的解决方案是否已经存在?

示例测试可能如下所示:

class NotificationEventTest{
    @Autowired
    private MyService service;

    private AndroidDevice device = AndroidDevice.getConnectedDevice();

    @Test
    public void notificationEventTest(){
        service.createEvent();
        boolean success = device.checkNotification(); //instrumentation
        assertThat(success).isTrue();
    }
}

【问题讨论】:

    标签: java android unit-testing testing integration-testing


    【解决方案1】:

    我找到了符合我要求的Appium。执行一些重量级后端测试并同时在设备上断言响应是完全可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2018-06-26
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多