2

IP カメラに接続し、HTTP 要求を実行して画像と M-JPEG を取得するアプリケーションがあります。とりあえずカメラは開発室にあるので大丈夫です。しかし、数週間以内にカムが製品化されるので (非常に高価なカムです)、アプリのテストとデバッグには使用できません。

私が知りたいのは、これらのカムを「モック」する最良の方法は何ですか? 今のところ、私のアプリケーションは 2 つのカムを使用しています。それらがhttp://192.168.88.1http://192.168.88.2にあるとしましょう。私はこれについて考えました:

  1. 私のアプリケーションでは、http 呼び出しを行う関数を、リリース時に実際の http 要求を実行し、デバッグ時に偽物を実行できるクラスにカプセル化することができました。これの悪い面は、時折のタイムアウトやネットワーク トラフィックのような実際のものを再現できないことです。
  2. ネットワークに接続して使用できる ip cam シミュレーターがどこかにあるのではないでしょうか?
  3. たぶん、偽の画像を返すようにプログラムした実際のサーバーへの実際の http 要求を作成しますか? もしそうなら、どのように手続きするのですか?

ご覧のとおり、私にはアイデアがありますが、何が最善で、人々が何をしているのかはわかりません。あなたの答えで、カメラが離れている間の通常のデバッグだけでなく、単体テストにも使用する可能性があることを考慮してください。

ありがとう!

4

4 に答える 4

2

広告。1: これは単体テストの場合に適した方法です。コードは外部サーバー/デバイス/ファイル システムに依存してはなりません。しかし、この環境が理想化されすぎている可能性があることはすでにおわかりでしょう。ただし、HTTP インフラストラクチャ コードを外部化することを目指します。これにより、テスト機能と全体的なアーキテクチャの両方が向上します。

広告。2: 聞いたことがありません、すみません。

広告。3: これが最も現実的な解決策だと思います。サーブレットを扱ったことがある場合は、Tomcat または Jetty を入手して作成してください。次に、サーブレットに接続し、localhost:8080/war_name/servlet_nameそこから必要なものを返します。これは非常に単純な例です

Java サーブレットとサーブレット コンテナーについて聞いたことがない場合でも、それらについて学ぶ価値はあります。ただし、Sun JDK に組み込まれている HTTP サーバーを起動する方が速い場合があります。 HttpServer API とを参照してください。

于 2011-11-01T13:19:28.703 に答える
1

実際の画像が必要で、Web カメラにアクセスできる場合は、ソリューションで、要求に応じて Web カメラから画像を取得する ASP.Net Web サービスを作成できます。デバッグ モードの場合は、asp.net 開発サーバーで Web サービスを開始するようにソリューションを構成します。これにより、「実際の」Web サーバーを構成する必要がなくなります。

c# からスナップショットを取得するためのコードへのリンクは次のとおりです。これはwinforms用ですが、Web サービスに適応できるはずです -ダウンロード

于 2011-11-01T13:20:01.263 に答える
1

Sinatraを使用して簡単なテスト ハーネスを作成することをお勧めします。Sinatra は、このようなあらゆる種類の基本的な Web アプリをスタブ化するために使用するのが非常に簡単です。

たとえば、Sinatra を使用して作成された実際のプログラムは次のとおりです。

require 'sinatra'

get '/hi' do
  "Hello World!"
end

Hello World!これにより、URI にヒットした場合に応答する単純な Web リスナーが実行されます/hi

Sinatra は Ruby ベースのアプリであり、Ruby の知識があれば最適です。そうでない場合、または別の言語を強く好む場合は、Sinatra のウィキペディアのページに、あらゆる種類の他の言語で書かれた 25 以上の同様のアプリがリストされているので、使用できるオプションがある可能性があります。

于 2011-11-01T13:25:51.053 に答える