make db接続でクラスをテストしたい。私がテストしたいクラスは、コンストラクタConnection
クラスのparamとして受け入れます。 mockオブジェクトをコンストラクタに渡したい。 db接続を模擬する方法を例に、良いフレームワークを教えてもらえますか?Javaモックデータベース接続
答えて
MockRunnerはJDBCをサポートしています。 Mockitoのような一般的なmockingフレームワークも動作しますが、JDBCは相互に返すインタフェースのセットであり、手で嘲笑するのは難しいでしょう。 How to stub/mock JDBC ResultSet to work both with Java 5 and 6?
しかしJDBCは、私はいくつかの薄いDAO層内のJDBCアクセスを抽象化することをお勧めのいずれか(使用するツールに関係なく)とても脆く、冗長ですモック(@duffymoの回答を参照)、または中のために行く:あなた自身のために参照してください。 - メモリデータベースH2のように。
も参照してください:
http://mockrunner.github.io /更新されたバージョンpviをホストしているサイトで言う:) –
あなたはeasymockを試すことができます。それは私が思う使いやすいです。 参照のためのチュートリアルを見つけることができます。 easymock
私はモック接続を作成しません - それは私の意見では、何も証明しません。
なぜライブ接続で完全にテストした後にリポジトリ/ DAO自体をモックするのか分かります。すでにテストしているので、モックリポジトリ/ DAOをサービスや他のクライアントに渡すことができます。統合テストを行うまで動作することを証明する必要はありません。
多くのテストケースでそのモックを再利用する場合は、独自の実装実装を検討し、その実装をどこでも再利用することも検討できます。
あなたは、上記の回答で述べたものとしてモックフレームワークを使用するか(私は個人的にEasyMockを使用) ORは、あなたが所有してモックオブジェクトを作成します。
class FakeConnection extends Connection{
// Overrive all method behavious you want to fake.
}
アコライトフレームワークは、このような目的のために有用です - >https://github.com/cchantep/acolyte。
このライブラリでは、ハンドラを提供する接続インスタンスを作成できます。ハンドラを実装すると、結果セットの生成やカウントの更新(または警告)など、クエリや更新を「ディスパッチ」することができます。
- 1. ID列のモックデータベース
- 2. Javaダウンロードファイル:「接続タイムアウト:接続」
- 3. Java - ブルートゥース接続
- 4. Javaソケット接続
- 5. 接続プールJava
- 6. Javaの接続
- 7. Javaアプレットネットワーク接続
- 8. Java MySql接続
- 9. Javaデータベース接続
- 10. Java JDBC接続
- 11. Java - TCP接続
- 12. Java接続プールオプション
- 13. Java、JDBC接続プール、JDBC接続ロールバック
- 14. Healthvault Java API:接続タイムアウト:接続
- 15. firebase接続タイムアウトのJavaサーバー側接続
- 16. Javaソケット接続Reuse
- 17. Java - 接続のステートメント
- 18. java-oracle9i/10g接続
- 19. Javaデータベースの接続
- 20. Javaの接続プール
- 21. Java - MySQL接続ゲッター
- 22. Java MongoDB接続プール
- 23. VirusTotal HTTPS接続Java
- 24. JAVAプッシャー列接続
- 25. TightVNC Javaビューアの接続
- 26. JavaでのHTTPクライアント接続
- 27. Java - Jdbc接続スローNullPointerException
- 28. ソケット接続番号java chat
- 29. Javaのネットワークデバイスに接続
- 30. JavaクローズTCP/IP接続
このリソースに興味があります:http://programmers.stackexchange.com/questions/118933/what-elements-of-my-junits-should-i-mock –