W testowaniu jednostkowym znakomicie jest udawać wszystkie zewnętrzne zależności, a jeśli używasz interfejsów do abstrahowania dostępu do klienta BigQuery, kpiny nie powinny stanowić problemu.
Dzięki testom integracyjnym wolałbym, aby wszystkie moje zależności od podmiotów trzecich były testowane pod kątem zgodności z wymaganiami aplikacji .
Na przykład jeden przypadek byłby ETL, który przesyła dane ze źródeł zewnętrznych do BigQuery, w tym przypadku test integracyjny musi zweryfikować, że wszystkie dane są w BigQuery zgodnie z oczekiwaniami, co oznacza, że etap weryfikacji musi uwzględniać powtórzenie i zagnieżdżone wiadomości w razie potrzeby.
Innym przypadkiem byłaby aplikacja, która uruchamia niektóre biznesowe SQL, w tym przypadku wypełnisz BigQuery pewnymi danymi testowymi przed uruchomieniem aplikacji, , wtedy aplikacja musi opublikować dane wyjściowe SQL jako widok/nowa tabela/lub strumień brak danych do weryfikacji.
Istnieje już kilka bibliotek dbanie testów integracji z magazynów danych oraz BigQuery/NoSQL/SQL
Oni zapewniają łatwe rozwiązanie dla wyżej opisanych przypadkach i pełne wsparcie dla SQL, dynamiczne makro/orzekać etc .. ..
- Dsunit (go-lang)
- JDsunit (java)
Jeśli biblioteka testów integracji danych nie jest dla Ciebie opcją i szukasz tylko testowania klienta BigQuery, dobrą wiadomością jest to, że klient używa usługi REST, więc używając snifferów sieciowych możesz łatwo rejestrować, co jest wysyłane tam iz powrotem, a następnie może go użyć w odtwarzaniu. Aby przekierować BigQuery z publicznych punktów końcowych BG do twojego odtwarzacza, używałbyś serwera proxy HTTP java.
Czy muszę zainstalować program go-lang dla JDSUnit? Również wprowadzenie mówi, że musimy zainstalować serwer DSUnit, co to jest? – user1965449
Musisz zainstalować golang, jdsunit to po prostu prosty klient odpoczynku dla serwera dsunit, który jest faktycznie odpowiedzialny za przygotowanie i weryfikację danych. –
Niestety, nie jest jasne, czy serwer dsunit jest instalowany automatycznie po zainstalowaniu golanga? Który komponent komunikuje się z BigQuery, czy jest to serwer jdsunit lub serwer dsunit? Proszę o wyjaśnienie. Dzięki. – user1965449