2012-04-23 5 views
0

最終的にSpringコンテキスト内でBeanを作成するために使用される一連のクラスをテストしています。私はテストのためにJUnitを使用しています。これらのクラスのインスタンスが、プログラムによってのインスタンス化されたときに、ライフサイクルメソッドと@Requiredセッターが正しく呼び出されるようにしたいと思います。私は普通のJavaプロキシ経由でこれを行うことができると知っていますが、Spring(または他の場所)内に特定のツールが存在するかどうか疑問に思っています。プログラムでインスタンス化されたオブジェクトthatsクラスにはSpringのライフサイクルアノテーションがあります

私は他の、あまり望ましく、オプションは単にコンテキストのXMLを作成して、インスタンスを初期化するためにそれを使用することです

X x = ???.newBeanInstance(X.class); 
x.setFoo(foo); 
x.setBar(bar); 
x.$postConstruct(); 
... 
x.$preDestroy(); 
x = null; 

ような何かを書くことを探しています。

答えて

2

コンテキスト全体を表示する場合は、spring-testパッケージとその@ContextConfigurationを使用できます。

手作業で処理したい場合は、自分で(ほとんど)自分で操作します。フィールド注入がある場合は、ReflectionTestUtilsを使用して依存関係を設定できます。しかし、離れて、あなたとは:

    • new X()
    • コールセッター
    • コール初期化メソッド(あなたはそれがどちらを知る必要があります)
    • コール終了
    • で破壊メソッドを持つオブジェクトをインスタンス化