2012-06-28 22 views
10

私はboost :: asioを使用して小さなXMPPサーバーを作成しています。自分のコードをユニットテストしたいと思います。 質問:ユニットテストとboost :: asio

  1. すぐに使用できるフレームワークはありますか?私が理解する限り、boost :: asioクラス/テンプレートのモックオブジェクトを提供する必要があります。私は本当にこれを(半)自動的に作成したいと思います。
  2. 並行性(複数のサーバーとメッセージルーティング間の接続)をテストできますか?

答えて

6

1)私はboost :: asio :: ip :: tcp :: socketの代わりに使うことができる小さなソケットクラスを書いています。もしあなたが好きなら、あなたはrobitzki.de/test_socket.h(test_socket.cpp、test_io_plan.h、そしてtest_io_plan.cpp)を見ることができます。使用されるコンストラクタに応じて、ソケットは異なるサイズのチャンクの読み書きをシミュレートできます。エラーもシミュレートできます。あなたが好きなら、あなたはそれを自由に使うことができます。

2)ソケット交換では、テスト対象ソフトウェアのストレステストを構築できます。これは、コードにバグが含まれていないことを決して保証するものではありません。個人的には、マルチスレッドコードにできるだけ多くのバグが含まれていることを確認するために、コードレビューが最も好きです。

HTH

トルステン

+0

こんにちは、私もASIO ::ユニットテストブーストを見て、あなたのtest_socket.hを見つけてきたあなたは:) – dutt

+3

を気にしないならば、私はそれをborrwingよ@duttあなたはそれを歓迎します。 https://github.com/TorstenRobitzki/Sioux/tree/master/source/asio_mocksを見てください。ここで私はこれをもっと再利用可能な形にしようとしました。 –

+0

ありがとう、私は見てみましょう:)私は私のニーズに合わせてここでいくつかのわずかな変更を加えました。 – dutt

関連する問題