2016-05-08 16 views
0

私は収束>テストキッチンテストキッチンの統合テスト:依存関係のテスト料理は

は、ノードを作成順序に従っていることを理解して料理の本>テストを実行し

何を前提とテストを作成することがベストプラクティスです強い外部依存関係?

例は、カフカ料理の本https://supermarket.chef.io/cookbooks/kafkaです。ご存知のとおり、Kafkaはメッセージハブである別のアプリケーションであるZookeeperに依存するメッセージブローカーアプリケーションです。

Kafkaの料理本には、問題の適切な分離が行われた後、同じホストまたは別のマシンにインストールすることができます。

しかし、Kafkaが動作している(つまり簡単なメッセージを作成している)場合は簡単に確認するには、Zookeeperサーバーを実行する必要があります。

例えば、テストはChefspecを使用してインストール

# creates a message topic 
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test 

# lists existing message topics 
bin/kafka-list-topic.sh --zookeeper localhost:2181 

# sends a message to this machine 
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 

後にこれらの3つのコマンドを実行していることができ、(:上記の2181の部分はlocalhost)、この外部サーバをスタブする方法はありますか?

ありがとうございました!

答えて

0

最初のChefSpecはユニットテストに使用され、テストキッチンと統合テストとは関係ありません。第2に、1ノードのZKサーバーをインストールして統合テストに使用するには、最小限のテストレシピを作成する必要があります。一般的には、テスト調理冊子をtest/cookbookの下に置き、それをあなたのBerksfileにpathソースを付けて追加します。あなたは「本当の」ZK料理の本を使うことができます。あるいは、もっとシンプルで使いやすいものを使うこともできます。テストのためのミニマリズムの例だけがmy MongoDB recipeを参照してください。このような状況では、おそらくZKのために似たようなものを使うことができます。

+0

答えていただきありがとうございました。私は.Netプロジェクトで作業していますが、現在使用しているPowerShellコマンドのシーケンスの代わりに、あなたの料理本を使用できるかどうかを確認します。 テストに関しては、テストのためだけにメインレシピに依存レシピを含めるという方法を避けることをお勧めします。しかし、私はテスト/料理本をやって、それが問題を解決するかどうか試してみるでしょう。すぐに更新。乾杯! –

関連する問題