統合テスト(JDK 6)では、すべての発信TCP接続を捕まえて、それらをモックしようとしています。私はjava.net.Socket#setSocketImplFactory()
メソッドを使用するように見えます。現時点では問題ありませんが、もとのJDKで提供されているSocketImpl
クラスをインスタンス化するために、元のファクトリにアクセスする方法を理解できません。ほとんどの場合、私はの接続を自由に外出させたいので、これが必要です。あなたは、この問題に関するいくつかのマニュアル/ガイドライン/指示を提案できますか?発信ソケット接続を擬似する方法は?
答えて
javadocによると、SocketFactory#getDefault()を使用して、ご使用の環境用のデフォルトのSocketFactoryを取得できるはずです。
ところで:あなたはまたのSocketImplFactoryは、基本的にはデッドエンドであることを宣言し、このRFE /バグで見たいと思うかもしれません:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4245730
あなたはそうですが、 'SocketImpl'クラスのインスタンスを生成する' SocketImplFactory'について説明しています。クラス 'java.net.Socket'はこれとは何の関係もありません。 – yegor256
Socketクラスのソースコードを見てみると、まったくオリジナルの工場がありません - コンストラクタはfactory
がnullかどうかを確認し、そうであればimpl
を新しいPlainSocketImpl()
に割り当てます。
私が理解する限り、「ソケットクラスのソースコード」はありません。すべてのJDKには独自のソースがあり、実装ごとに異なる場合があります。 – yegor256
おそらくそれは私の素朴なものでしたが、Oracle JDK 6を使用していると仮定しました。この場合、特定のソースがあります。これを行い、取得する元のファクトリがないことを説明するために使用しました。あなたがそれを行うことができれば、私は@Peter Lawreyがサービスを使うことが最良の方法であることに同意します。 Runtime.getRuntime()で同じことをしなければならなかった。 http://stackoverflow.com/questions/2257901 – Rich
これは、ソケットを使用しているアプリケーション内のサードパーティのライブラリです。私はそれをどうにか変更することはできません。 – yegor256
Socketを嘲笑するのではなく、SocketがSocketサービスと対話するのではなく、これにより、書かれたすべてのデータを取得し、任意の方法で返信することができます。これは、同じテストで、場合によっては同じスレッドで実行できます。
- 1. 擬似分散モードのHadoop接続が
- 2. hbase擬似分散リモート接続
- 3. ソケット接続を実装する方法
- 4. Rildソケットに接続する方法
- 5. Perlソケットはftpリクエストで(擬似)httpサーバーを中断します!
- 6. Javaソケットの接続をシミュレートする方法は?
- 7. ソケット接続の損失をシミュレートする方法は?
- 8. ソケットを使用してNAOロボットに接続する方法は?
- 9. ピア2ピア設定で2つのソケット接続を接続する方法
- 10. TCPソケットに接続する方法、データを受信する前にデータを送信する
- 11. ノードインスタンス間で接続ソケットを切り替える方法は?
- 12. ソケット接続Windows
- 13. ソケットPython接続
- 14. ソケット接続:Python
- 15. Javaソケット接続
- 16. ソケット接続に
- 17. gwtソケット接続
- 18. TCP/IP接続の発信時にローカルIPを設定する方法は?
- 19. Spring Beanのautowiredリストを擬似する方法は?
- 20. 外部IP経由でソケットを接続する方法(Mac)
- 21. Javaサーバーでソケット接続セッションを共有する方法
- 22. ローカルredisクライアントを使用してソケットに接続する方法
- 23. フォームをWebページ(ソケット)に接続する方法
- 24. モバイルデバイスとサーバー間のソケット接続を確立する方法
- 25. 着信接続で携帯電話とコンピュータを接続する方法は?
- 26. スウィフトでのソケットの使い方(接続、メッセージの送受信)
- 27. TCP/IPソケット接続でリセットを送信する
- 28. ノイズの擬似乱数発生器
- 29. Java:ソケットで再接続するとエラーが発生する
- 30. C#で擬似RESTサービス経由でGETリクエストを発生させる方法
この質問は関連しています:http://stackoverflow.com/questions/2083647/writing-a-java-net-socketimplfactory – yegor256
関連する:http://stackoverflow.com/questions/2257901/mock-runtime-getruntime – Rich