【问题标题】:Google App Engine Datastore integration testingGoogle App Engine Datastore 集成测试
【发布时间】:2014-03-12 23:43:00
【问题描述】:

我想为我的 Google App Engine REST 服务器编写一些集成测试。

我当前的设置是针对本地运行的 GAE 环境运行 Rest-Assured 集成测试。这对于返回 json 的简单调用完美无缺。

我想更进一步,在运行放心 IT 之前,我想清除数据存储并用一些测试数据预先填充它。

如果本地应用程序正在运行,是否可以与同一个数据存储(来自集成测试)进行交互?请注意,我正在从 Eclipse 或 mvn test 运行测试。

我已经尝试过 LocalServiceTestHelper

private final LocalServiceTestHelper helper =
    new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

但这似乎并没有连接到同一个数据存储区,这也很有意义,因为它用于单元测试。

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore integration-testing


    【解决方案1】:

    我认为您正在进行的测试只是一个单元测试 (JUnit),因此您需要的是一个集成测试,例如使用 Arquillian。

    使用 GAE Arquillian 测试非常简单,只需使用 RedHat CapeDwarf 团队开发和维护的 GAE Arquillian 容器即可:

    https://github.com/alesj/arquillian-container-gae

    这是一个示例用法:https://github.com/alesj/arquillian-container-gae/blob/master/gae-embedded/src/test/java/org/jboss/arquillian/container/appengine/embedded/AppEngineEmbeddedClientTestCase.java

    【讨论】:

      【解决方案2】:

      您可以将测试装置部署为separate module。在该模块中编写一组用于设置和拆卸测试数据的 ReST 处理程序。然后,在您的测试中通过 http 调用这些处理程序。

      请注意,在云数据存储查询中显示新记录会稍有延迟,具体取决于您正在执行的操作,您可能需要在测试代码中考虑到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-13
        • 1970-01-01
        • 2012-07-09
        • 2015-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多