gpt4 book ai didi

java - 为集成测试模拟 Bigquery

转载 作者:搜寻专家 更新时间:2023-10-30 21:31:40 24 4
gpt4 key购买 nike

虽然在我的 Java 集成测试中其他接口(interface)相对容易模拟,但我找不到模拟 Bigquery 的正确方法。

一种可能性是模拟我在 Bigquery 本身之上编写的层,但我更喜欢以更自然的方式模拟 Bigquery。我正在寻找一个有限的、轻量级的实现,它允许定义表内容,并支持使用标准 API 进行查询。有这样的图书馆吗?如果不是,建议使用哪些替代方法?

最佳答案

在单元测试中,模拟所有外部依赖项是完全没问题的,只要您使用接口(interface)抽象出对 BigQuery 客户端的访问,模拟就应该不是问题。

通过集成测试,我宁愿测试我所有的第 3 方依赖项扩展应用程序需要它。

例如,一种情况是将数据从外部源流式传输到 BigQuery 的 ETL,在这种情况下,集成测试需要验证所有数据是否按预期在 BigQuery 中,这意味着验证阶段需要考虑重复,并根据需要嵌套消息。

另一种情况是运行某些业务 SQL 的应用程序,在这种情况下,您会在应用程序运行之前用一些测试数据填充 BigQuery,然后应用程序需要将 SQL 输出发布为 View /新表/或流出数据以进行验证。

已经有一些库负责与数据存储的集成测试,包括 BigQuery/NoSQL/SQL

它们将为上述情况提供简单的解决方案,并全面支持 SQL、动态宏/谓词等....

  1. Dsunit (go语言)
  2. JDsunit ( java )
  3. Endly (与语言无关)

查看更多使用方法endly用于 ETL 和 BiqQuery 测试

如果数据存储集成测试库不适合您,而您只是想测试 BigQuery 客户端,那么好消息是该客户端使用 REST,因此使用网络嗅探器您可以轻松记录来回发送的内容,然后你可以在重播中使用它。为了从重定向 BigQuery您将使用 http java 代理的重放器的公共(public) BG 端点。

关于java - 为集成测试模拟 Bigquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39507712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com