2016-09-15 20 views
8

Trong khi các giao diện khác tương đối dễ giả lập trong các bài kiểm tra tích hợp Java của tôi, tôi không thể tìm ra cách thích hợp để chế nhạo Bigquery.Mocking Bigquery cho các bài kiểm tra tích hợp

Một khả năng là giả lập lớp tôi đã viết trên chính Bigquery, nhưng tôi thích chế nhạo Bigquery theo cách tự nhiên hơn. Tôi đang tìm một triển khai có giới hạn, nhẹ, cho phép xác định nội dung bảng và hỗ trợ các truy vấn bằng cách sử dụng API chuẩn. Có thư viện nào không? Nếu không, phương pháp tiếp cận thay thế nào được khuyến nghị?

Trả lời

4

Trong thử nghiệm đơn vị, việc giả lập tất cả các phụ thuộc bên ngoài là hoàn toàn tốt, và miễn là bạn đang sử dụng giao diện để truy cập trừu tượng vào ứng dụng BigQuery, việc mô phỏng không phải là vấn đề.

Với thử nghiệm tích hợp, tôi muốn nhận được tất cả các phụ thuộc bên thứ 3 của tôi được kiểm tra để mở rộng ứng dụng cần. Ví dụ:

Ví dụ một trường hợp sẽ là ETL truyền dữ liệu từ nguồn bên ngoài đến BigQuery, trong trường hợp này, kiểm tra tích hợp cần xác minh rằng tất cả dữ liệu trong BigQuery như mong đợi, có nghĩa là giai đoạn xác minh cần phải tính đến lặp lại và thư lồng nhau khi cần.

Trường hợp khác sẽ là ứng dụng chạy một số SQL nghiệp vụ, trong trường hợp này bạn có thể nhập BigQuery bằng một số dữ liệu thử nghiệm trước khi chạy ứng dụng, thì ứng dụng cần xuất bản kết quả SQL dưới dạng xem/bảng/luồng mới hết dữ liệu để xác minh.

Hiện đã có một số thư viện chăm sóc thử nghiệm tích hợp với kho dữ liệu bao gồm BigQuery/NoSQL/SQL

Họ sẽ cung cấp một giải pháp dễ dàng cho các trường hợp nêu trên và hỗ trợ đầy đủ cho SQL, macro động/predicate vv .. ..

  1. Dsunit (go-lang)
  2. JDsunit (java)
Nếu thư viện kiểm tra tích hợp kho dữ liệu không phải là một lựa chọn cho bạn và bạn đang tìm kiếm chỉ là thử nghiệm ứng dụng khách BigQuery, thì tin tốt là máy khách sử dụng REST, vì vậy sử dụng trình thám thính mạng bạn có thể dễ dàng ghi lại những gì đang được gửi qua lại. có thể sử dụng nó trong replayer. Để chuyển hướng BigQuery từ điểm cuối BG công khai tới trình phát lại của bạn, bạn sẽ sử dụng proxy http java.

+0

Tôi có cần cài đặt go-lang cho JDSUnit không? Phần giới thiệu cũng nói rằng chúng ta cần phải cài đặt máy chủ DSUnit, cái đó là gì? – user1965449

+0

Bạn sẽ cần phải cài đặt golang, jdsunit chỉ là máy khách đơn giản cho máy chủ dsunit thực sự chịu trách nhiệm chuẩn bị dữ liệu và xác minh –

+0

Xin lỗi, máy chủ dsunit không rõ ràng của nó có được cài đặt tự động khi tôi cài đặt golang không? Thành phần nào liên lạc với BigQuery, có phải là máy khách hoặc máy chủ dsunit không? Vui lòng làm rõ. Cảm ơn. – user1965449

Các vấn đề liên quan