問題タブ [jmock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Junit4/Jmock2 で基本クラスがサポートされていない
ユニットテストのコードベースをついに JUnit 3 から JUnit 4 に移行しました。JMock 2 も多用しています。
JUnit 3 では、JMock はテスト用の便利な基本クラス (MockObjectTestCase) を提供します。これは、それ自体が Junit の TestCase のサブクラスであるだけでなく、モック フレームワークに関するさまざまなハウスキーピング タスクを処理します。これにより、テスト クラスの作業がかなり楽になります。
現在、JUnit4 では、JMock はそのようなサポートを提供していません。テスト クラスは、Mockery オブジェクトを手動で作成する必要があり、正しいテスト ランナー アノテーションを使用することを覚えておく必要があり、すべてのモック関連の操作をモックに委譲する必要があります。つまり、JUnit 3 テストで必要とされていたよりもはるかに多くの責任がテスト クラスに課せられます。
JUnit4 の魅力の 1 つは何かをサブクラス化する必要がないことですが、この JMock の状況は一歩後退しているように見え、3 から 4 への移植は必要以上に手間がかかります。
何か不足していますか?JUnit4/Jmock2 テスト クラスを、すべてのクラスに手動ですべての配管を追加せずに記述する良い方法はありますか? もちろん、独自のサポート基本クラスを作成することもできますが、それは JMock2 API からの明らかな省略のように思えます。
編集:オプションのサポートクラスがどのようになるかのソースコードは次のとおりです。
これには、JUnit3 MockObjectTestCase クラスが定義したすべてのメソッドが含まれており、モックにエコーするだけです。テストクラスに追加するのを忘れる可能性を避けるために、 @RunWith アノテーションもあります。
spring - JMockを使用してJavaで静的変数をモックする方法
SpringApplicationCtxをロードしたい静的変数がクラスにあるユニットテストの問題があります。
このクラスはBeanFactoryから出てこないので、この事実を変更することはできません。
これは問題なく動作しますが、JMockを実行するのは困難です。少なくとも、方法がわからず、SpringCtxが起動したいと思うようになるまでは。単体テストの状況には理想的ではありません。
誰かが知っている回避策はありますか?静的変数を好きなように変更するオプションがあります。
ありがとう。
java - Swing コンポーネントの単体テスト
TotalCommander のようなアプリケーションを作成しています。ファイルリスト用の別のコンポーネントと、そのモデルがあります。モデルはリスナーをサポートCurrentDirChanged
し、次のようなイベントの通知を発行します。
私はこれのための簡単なテストを書きました:
がないため、これは機能しませんEventDispatchThread
。ヘッドレスビルド内でこれを単体テストする方法はありますか?
単体テストJavaスイングjmock
java - SpringJUnit4とJMockを一緒に使用する
Junit4テストを実行するときは、@RunWith(SpringJUnit4ClassRunner.class)
アノテーションを使用して、SpringBeanをテストクラスに挿入できるようにします。
JMock 2フレームワーク(実際の経験はありません)を使用したいのですが、表示される例では次のものが必要です@RunWith(JMock.class)
。
だから私の質問は、JMockとSpringをJUnit4テストと一緒に使用できますか?もしそうなら、どのように使用しますか?たとえば、JMockもサポートするSpringテストランナーはありますか?
ありがとう、
リチャード
junit - AtUnit 対 'Junit、JMock および GUICE' を手作業で - ?
DI と guice を使用した単体テストに関して、AtUnit はどのように機能しますか?. あなたの経験を共有してください。
java - 単体テストヘルパーメソッド?
以前は大規模なメソッドを持っていたクラスがあるため、このメソッドの作業を「ヘルパー」メソッドに分割しました。
これらのヘルパー メソッドはprivate
、カプセル化を強制するように宣言されていますが、大きなパブリック メソッドを単体テストしたいと考えています。ヘルパー メソッドの単体テストを行うのはよいことでしょうか。そのうちの 1 つが失敗すると、それを呼び出すパブリック メソッドも失敗するため、失敗した理由を特定できますか?
また、モック オブジェクトを使用してこれらをテストするには、可視性をプライベートからプロテクトに変更する必要がありますが、これは望ましいですか?
java - Guice と JMock を一緒に使用する最良の方法は何ですか?
プロジェクトで依存性注入を行うために Guice を使い始めました。主な理由は、単体テストから離れたレイヤーに (現在 JMock を使用して) モックを注入する必要があるためです。これにより、手動注入が非常に厄介になります。
私の質問は、モックを導入するための最良のアプローチは何ですか? 私が現在持っているのは、依存関係を満たす単体テストで新しいモジュールを作成し、次のようなプロバイダーにバインドすることです。
コンストラクターでモックを渡すため、JMock のセットアップは次のようになります。
より良い方法はありますか?AtUnit がこの問題に対処しようとしていることは知っていますが、上記のようにローカルで作成されたモックを自動的に魔法のように注入する方法がわかりませんが、ここで AtUnit が正しい答えである説得力のある理由 (その他) を探しています。テストを変更せずにDIとモックフレームワークを変更する能力よりも)、または手動で行うためのより良い解決策があるかどうか。
java - JMockを使用したテストは見つかりませんでした
Antを使用した単体テストでの実行に問題があるため、私のテストクラスはJmockを使用しています。
各テスト方法を識別するための注釈。ant(1.7.1)でビルドしようとすると、
[junit]MyTestClassにテストが見つかり
ません[junit]junit.framework.AssertionFailedError:テストが見つかりません
助言がありますか?
java - JmockモックDAOオブジェクト
正しい文字列キーを指定して、文字列の特定のリストを取得するメソッドを作成しました。これで、リスト(前の文で説明したメソッドで取得するリスト)を作成してテストを作成すると、簡単に結果を取得してテストに合格することができます。
一方、このリストのコンテンツを2列でデータベースに保存し、そのkey
中value
にメソッドを含むこのアイテムを取得するクラスを作成した場合。そして、コンソールに出力して期待される結果が正しい場合、DAOをアプリケーションコンテキストから初期化します。アプリケーションコンテキストでは、Bean内でセッションが取得され、DAOが機能します。
サーバー上ではなくローカルでテストを実行しているため、DAOをモックするテストを作成しようとしています。jmockにモックするように指示しました。
setup()で
私はそれを正しくモックしていると思いますが、データベースからこのデータをモックするにはどうすればよいですか?最善の方法は何ですか?
どこかに良いJmockドキュメントがありますか?彼らの公式サイトでは、それはあまり良くなく明確ではありません、あなたはそれを見つけるためにあなたが探しているものを知らなければなりません、その間に何かクールなものを発見することはできません。
または誰かがこのアプローチで私を助けることができます:
DAOとサーバー上のいくつかのBeanをインスタンス化するために、テストにのみ使用するアプリケーションコンテキストを作成するにはどうすればよいですか。だから私はそれをテストで使うことができますか?また、提案、説明はすべて大歓迎です。ありがとうございました