最近私はwicketで開発を開始し、単体テストそのものにウィケットアプリケーションを設定する方法を知りました。私は現在、Wicket 6.8コアを使用しています。 4.1.2ユニットテスト用。WicketユニットテストTranslations.utilsが見つかりません
アプリケーションでロケールを設定する方法が不思議です。 実際にテストアプリケーションを作成するのも良い方法です。 私が達成しようとしているのは、変換ファイルからロードされた文字列のセットが返されるかどうかを調べるテストです。
//from the Class.
public Class Information(){
public Information(){}
public String getInfo(){
return TranslationUtil.getTranslation("RandomFieldNameTobeTranslated");
}
}
単体テスト:
import org.junit.Before;
import org.junit.Test;
public class InformationTest(){
@Before
public void setup() throws Exception(){
//needs to be setup in someway it can be used by the test.
tester = new WicketTester();
WebApplication web = tester.getApplication();
web.usesDeploymentConfig();
web.configure();
web.initApplication();
Session.get().setLocale(new Locale("en_us"));
}
@Test
public test(){
Information information = new Information();
assertEquals("Foo is Foo", "Foo", information.getInfo());
}
}
ユニットテストは、コードを実行し、プロパティを見つけることができないでしょう。 これは基本的なテストであり、問題点を説明しています。
java.util.MissingResourceException:
Unable to find property: 'RandomFieldNameTobeTranslated'. Locale: null, style: null
初期化と設定でいくつかのバリエーションを試しました。しかし、私は開発ユニットのテストのために正しい方法で改札を初期化する方法を知るにはあまりにも経験がありません。
質問:それはセッションにロケールを見つけることができるように
は、どのように私は改札を初期化することができますか?
ウィケットを正しい翻訳ファイルにリダイレクトする方法はありますか?
プロダクションバージョンは動作しますが、単体テストを作成したいと思い、「アプリケーション」が必要なようです。それは嘲笑される可能性がありますが、最後の手段として、これは場所の割当てに使用されるため、私はむしろ '価値が価値と等しい'ことをテストしたいと考えています。 #wicketから