结合Android检测测试和后端集成测试

时间:2018-04-18 10:56:39

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

我为一个复杂的基于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();
    }
}

1 个答案:

答案 0 :(得分:0)

我发现Appium符合我的要求。执行一些重量级后端测试,同时在设备上声明响应是完全可能的。