私はWicketを使い始めました。私はGuiceを依存性注入フレームワークとして選択しました。今、WebPageオブジェクトの単体テストを書く方法を学びたいと思っています。wicketとAtUnit
私はちょっとグーグルで見つけました。this postが見つかりましたが、AtUnitに言及しましたので、試してみることにしました。
私のWebPageクラスは、私はそれを持つ任意の生産MyServiceImplを置き換えるためにモックを作成し、この
public class MyWebPage extends WebPage
{
@Inject MyService service;
public MyWebPage()
{
//here I build my components and use injected object.
service.get(id);
....
}
}
のように見えると私はGuiceのはAtUnitと手でそれを注入する必要があることを推測します。
は、今の問題は、次のとおりです。
AtUnitは私が@Unitで対象オブジェクトをマークすることを期待する - 私はWicketTester
@Unit MyWebPage page = new MyWebPage(); wicketTester.startPage(page);
にすでに作成されたオブジェクトを渡しますが、通常はIすることができますよう、それは大丈夫ですクラス名でstartPageを呼び出します。
- 私はAtUnitがAtUnitを作成し、それを管理できるように、ターゲットオブジェクトは@Injectと市場があることにも期待していだと思う - 私はorg.apache.wicket.WicketRuntimeExceptionを取得する:現在のスレッドのメインに添付アプリケーションが存在しません。 AtUnitにwicketTesterのアプリケーションを使用するよう指示することはできますか?
- 私は本当に見つけることができない私は
(私の例では、サービスの参照がnull)のGuiceによって注入されなければならないすべてのオブジェクトがnullです(と思う)MyWebPageで@Injectを使用していないのでWicket環境内のAtUnitに関するもの。間違ったことをしていますか?
OK、これを共有するためのおかげで、まだWicketTesterで使用するための最良のlibないAtUnitと思います。私はあなたの方法に従うと思います。 – kamiseq
これはWicket> 1.5では動作しなくなりました。 – weltraumpirat