2011-07-13 15 views
1

私はmockejbフレームワークを使用してメモリ内のエンティティBeanを模擬しています。私は参照を行い、mockejbは実際のエンティティのプロキシをもたらします。それは働いている。(MockEJB)インコンテナテストからモックされたエンティティBeanを取得する

しかし、私はコンテナJNDIからセッションBeanを取得して "理解する"必要がありました。つまり、Session BeanがEntity Beanを参照すると、データベースからBeanではなく、私が嘲笑したBeanを受け取ることができます。

私はモックしようとしているメソッドの中にエンティティBeanのルックアップがあるので、このセッションBeanをモックできません。このメソッドは正常に実行する必要がありますが、ルックアップ時には模擬したBeanを受け取る必要があります。

[UPDATE]私の開発環境について 情報: 私はサボテンにして、コンテナ動作するWebテストプロジェクトを持っているIBM RSA 7.5、IBMのWebSphere 6.1、 を使用しています、私のクラスパスの最後のLIBSは以下のとおりです。

  • サボテン-1.7.2.jar
  • CGLIB-NODEP-2.1_3.jar
  • コモンズ-HTTPClientの-2.0.2.jar
  • コモンズ・ログ-1.0.4.jar
  • -1.3.9-full.jar powermock-easymock
  • のjunit-3.8.1.jar
  • mockejb.jar

OBS:私はすでに最新powermockバージョンに変更しましたjUnit4を使用して、EasyMock 3.0のみを使用しようとしました。また、EasyMock 2.xのクラス拡張を試しました。これらのどれも働かなかった。本当に興味をそそられるのは、EasyMockのドキュメントに記載されているDefaultInstantiatorの設定です:http://easymock.org/EasyMock2_4_ClassExtension_Documentation.html。私はそれが私のケース(サポートされていないJVM)であるかどうか、私はそれを動作させることができませんでしたかと思った。

ありがとうございます。

答えて

1

は、あなたが「偽」にPowerMockのようなものを使用することはできません

「私はので、私はモックしようとしているメソッドの内部で、このセッションBeanを模擬することができない、ので、エンティティBeanへの参照があります」ルックアップ?このことができます http://dave00ster.blogspot.com/2011/07/powermock-static-method-replace.html

希望、 dave00

+0

おかげで、私がしようとしている:と同様などの方法で、私が最近出くわした

ここ

ある何かを交換してください。しかし、今問題は、検索を行うクラスがシングルトン= Sであることです。だから、私は具体的に静的メソッドを模擬するための指示に従おうとしました(http://redchilliplus.wordpress.com/2010/06/08/unit-testing-in-java-with-easymock-and-powermock/とhttp://コードはありません=/ –

+0

私は言及するのを忘れましたが、私が使用しているJVMでモックが正しく動作しないようです。 「<クラスの名前>はインターフェースではありません」というエラーが表示されます。 EasyMock 3またはEasyMock 2.xをクラス拡張またはPowerMock = Sを使用している場合でも、 –

+0

テストクラスとクラスパス(またはpom.xml)をどのように設定するかを投稿した方がいいかもしれません。 – dbalakirev