問題タブ [cdi-unit]

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.

0 投票する
1 に答える
1021 参照

java - Jglue (CDI ユニット) はまだ利用できますか?

一部のプロジェクトでは、CDI インジェクションのサポートをテストするために jglue を使用しています。

サーバー「jglue.org」と Maven リポジトリーにアクセスできなくなりました。何が起こるか知っている人はいますか?

0 投票する
3 に答える
3356 参照

unit-testing - CDI Unit と EasyMock による単体テスト

CDI を使用したプロジェクトがあり、モックを使用して単体テストを作成したいと考えています。モックを管理するには EasyMock を使用し、CDI で実行するには、使いやすいと思われる cdi-unit プロジェクトを見つけました。

CDI コンテキストで EasyMock を使用してモックを取得するのに問題があります。これが私の単体テストです:

IStockDao はテストでモックにする必要があるため、それを取得するには、次のような @Produces メソッドを使用したいと思います (@AdditionalClasses によって cdi ユニットに与えられた MockFactory クラスで):

単体テストを実行すると、モックは単体テストに適していますが、次のエラーが発生します。

java.lang.IllegalArgumentException: モックではありません: org.jboss.weld.proxies.IStockDao$-1971870620$Proxy$_$$_WeldClientProxy

これは、CDI が EasyMock IStockDao のインスタンスを提供するのではなく、プロキシ化されたインスタンスを提供し、EasyMock がこれらのメソッド (reset メソッドなど) でこれを受け入れないために発生します。

したがって、MockFactory の @ApplicationScoped をインスタンスをプロキシしない @Dependent に置き換えますが、新しい問題があります。

この注釈は、各インジェクション ポイントでモックの新しいインスタンスを提供するので、単体テストにモックを使用して、テスト対象のクラスで呼び出されるメソッドをモックするため、それを使用できます。そして、モックのこのインスタンスは、テストされたクラスで同じでなければなりません (@Dependent の場合はそうではありません)。

単体テストとテスト済みクラスで同じインスタンスを取得するにはどうすればよいですか?

ありがとう。

0 投票する
1 に答える
1192 参照

cdi - WicketTester と CDI-Unit を使用した単体テストは Eclipse で機能しますが、Maven ビルド中に失敗します。私は何が欠けていますか?

CDI-Unit を使用して、依存関係の挿入に CDI を使用している Wicket コンポーネントをテストしようとしています。テストは Eclipse で完全に機能しているように見えますが、Maven ビルド中に失敗し、ヒントや何が問題なのかを見つけることができません。

シンプルな抽象 WicketPanel を作成しました

そして注射工場:

次に、CDI-Unit を使用して単体テストを作成します。

TestPanel は含めていませんが、非常に単純です (そして多かれ少なかれ空です)。

これを Eclipse で実行すると、テストは緑色でパスします。

これをMavenで実行すると、次のようになります。

私が間違っていることの手がかりはありますか?

0 投票する
3 に答える
2860 参照

unit-testing - CDI-Unit Jglue を使用した CDI の単体テスト

CDI アプリケーションの単体テストに Jglue フレームワークを使用したいと考えています。ビルドにはgradleを使用しています。

次のようなものを用意しました。

1) テストするクラス:

2) インターフェース:

3) Gradle の設定 ( http://jglue.org/cdi-unit/の開始に従いました)

4) テストクラス:

この単純なテストを実行すると、常に次の例外が発生します。

/build/reports/tests/index.html には次のものがあります。

この例外を回避する方法を知っている人はいますか? 必要に応じて、さらに詳細を追加できます。

0 投票する
2 に答える
1295 参照

unit-testing - CDI 単体テストは、修飾子の種類の満たされていない依存関係の例外で失敗します

こんにちは、次の修飾子タイプが定義されています..

そしてそれから2つの実装。

そして、私はクライアントから..として注入しています

実行時にすべてが正常に動作します..

しかし、単体テストを実行すると問題が発生します..

私は以下の例外を取得しています..

org.jboss.weld.exceptions.DeploymentException: WELD-001408: 注入ポイント [BackedAnnotatedField] @Inject @SortAndFilterType プライベート com.collabnet.ctf.saturn.client.apps.users.ChangeUsersStatus. mSortAndFilterProvider

このような単体テストからこれを呼び出します.. @RunWith(CdiRunner.class) で実行されます

ここで何がうまくいかないのですか?

0 投票する
1 に答える
884 参照

cdi - クラスを CDI ユニットでのスキャンから除外するには?

CDI ユニット ランナーでテストを実行していますが、一部のクラスを除外したいと考えています (CDI イベントに作用するため)。私はbeans.xmlを試しました:

しかし、CDIユニットはそれを無視しているようです。では、CDI ユニットでクラスを除外する正しい方法は何ですか?

0 投票する
1 に答える
1486 参照

java - CDI-Unit @Produces が機能しない

まず、私は集中的にグーグルで検索し、 http://jglue.org/cdi-unit-user-guide/によると、単体テストで注入するものを作成するとうまくいくはずです。

私のセットアップ:

例外:

org.jboss.weld.exceptions.DeploymentException: 3 つの例外を含む例外リスト:

例外 0 : org.jboss.weld.exceptions.DeploymentException: WELD-001408: インジェクション ポイント [BackedAnnotatedField] で修飾子 @Default を持つタイプ Logger の満たされていない依存関係 [BackedAnnotatedField] @Inject private at.fhhagenberg.unitTesting.beans.SurveyBean.log ...

これは、CdiRunner が SurveyBean を構築してロガーを注入しようとするが、注入するオブジェクトを見つけられないことを意味しますが、具体的には基本クラスで生成します (EntityManager についても同様です)。

誰でもこれを修正する方法を知っていますか?

PS: 追加を許可されていないタグ: cdi-unit、jglue

0 投票する
1 に答える
1841 参照

maven - EJB の使用中に Java EE JUnit が CDI-Unit と連携しない

JUnit 4 テストで CDI を使用できるようにCDI-Unit JARhttp://jglue.org/cdi-unit/を使用しています。EJB を注入し、オブジェクトを永続化するメソッドを呼び出しましたClientが、次のエラーが発生します。

私のステートレス EJB (OperationsEJB.java):

私のJUnitテスト:

私はMavenを使用していません。ダウンロードしましたweld-se-core-2.3.0.Final.jarが、別のエラーが発生しました:


編集 :

今私はMavenを使用しています.これは私のJUnitテストコードです:

OpTest.java :

これが私のEJBです:

テストを実行すると、次のエラーが発生します。

JUnit ログに表示されるエラーは次のとおりです。

前もって感謝します。