2016-09-15 7 views
8

Java統合テストでは、他のインターフェースが比較的簡単ですが、Bigqueryを巧みに使う方法が見つけられませんでした。統合テストのためのBigqueryの模倣

私はBigquery自体の上に書いたレイヤーを模倣することができますが、私はBigqueryをより自然な方法で嘲笑する方が好きです。私はテーブルの内容を定義することができ、標準APIを使用してクエリをサポートする、限定された、軽量な実装を探しています。 このようなライブラリはありますか?そうでない場合は、どのような代替アプローチが推奨されていますか?

答えて

4

ユニットテストでは、すべての外部依存関係をモックすることができます。また、インターフェイスを使用してBigQueryクライアントへのアクセスを抽象化している限り、モックを問題にしないでください。

統合テストでは、私の代わりにすべてのサードパーティの依存関係がテストされました アプリケーションの拡張が必要です。

たとえば、外部ソースからBigQueryにデータをストリームするETLがあります。この場合、統合テストでは、すべてのデータがBigQuery内にあることを確認する必要があります。つまり、検証段階では、 、および必要に応じてネストされたメッセージ

もう1つのケースでは、いくつかのビジネスSQLを実行するアプリケーションがあります。この場合、アプリケーション実行前にいくつかのテストデータを入力する必要があります。 アプリケーションはビュー/新規テーブル/ストリームとしてSQL出力をパブリッシュする必要があります。検証のためのデータが不足しています。

いくつかのライブラリは、彼らは、などの動的マクロ/述語、上述の例のための簡単な解決策とSQLを完全にサポートを提供するのBigQuery/NoSQLの/ SQL

を含むデータストアとの統合テストの世話をして、すでにあります。.. ..

  1. Dsunit(行く-langの)
  2. JDsunit(Java)の

データストア統合テストライブラリがオプションではなく、単にBigQueryクライアントをテストするだけの場合は、クライアントがRESTを使用するため、ネットワークスニファを使用して、何を送信しているのかを簡単に記録できますそれを返信者に使用することができます。 BigQueryを 公開BGエンドポイントからリプライヤーにリダイレクトするには、http java proxyを使用します。

+0

JDSUnitのgo-langをインストールする必要がありますか?また、DSUnitサーバをインストールする必要があるとも言われています。 – user1965449

+0

golangをインストールする必要があります.jdsunitは実際にデータ準備と検証を担当するdsunitサーバーの単純な休憩クライアントです –

+0

golangをインストールするとdsunitサーバーは自動的にインストールされますか? BigQueryと通信するコンポーネントは、jdsunitクライアントかdsunitサーバーですか?どうか明らかにしてください。ありがとう。 – user1965449

関連する問題