英文:
Mocking Bigquery for integration test
问题
我正在使用https://github.com/googleapis/google-cloud-go与GCP Bigquery进行交互,以获取一些数据。
我想为我的代码编写一些测试。对于单元测试来说很容易,因为我可以模拟我的存储库(数据层)并返回我期望的结果。
我正在寻找如何编写Golang中GCP Bigquery的集成测试。如果只是基本的HTTP,我可以编写一个httptest服务器并返回一些虚拟(假的)数据。但是这个库使用gRPC与GCP Bigquery进行通信。
我想知道如何为GCP Bigquery编写集成测试。
让我们以最简单的方式进行,只提供“查询数据集中的表并读取数据”的集成部分。
英文:
I'm using https://github.com/googleapis/google-cloud-go to interact with GCP Bigquery to fetch some data.
I want to write some tests for my code. for the unit testing, it's easy because I can mock my repository ( data layer) and return what I expected for.
I'm looking for writing an integration test, if it was just basic HTTP I could write a httptest server and return some dummy ( fake) data. but this library is using gRPC to communicate with GCP Bigquery.
I'm wondering how I can write an integration test for GCP Bigquery in Golang.
let's keep it in the simplest way and just provide the integration part for Query a table in a dataset and read data
.
答案1
得分: 4
你可以在本地运行依赖项。阅读:Google BigQuery的Docker容器
你可以编写脚本,在Docker容器中运行测试和依赖项(BigQuery)
如果你不想使用Docker运行测试,你可以使用bigquery-emulator
或者只是模拟它
将你的存储库(数据层)作为接口发送到你的HTTP服务器
然后你可以使用模拟运行测试
英文:
You can run dependency locally. Read :
Docker container for Google BigQuery
You can write script for running tests and dependencies(BigQuery) in docker container
If you dont want to run test using docker you can use bigquery-emulator
Or just mock it
Send your repository(data layer) as interface to your http server
And then you run test use mock
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论