2017-02-02 9 views
0

最近私は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 

初期化と設定でいくつかのバリエーションを試しました。しかし、私は開発ユニットのテストのために正しい方法で改札を初期化する方法を知るにはあまりにも経験がありません。

質問:それはセッションにロケールを見つけることができるように

  1. は、どのように私は改札を初期化することができますか?

  2. ウィケットを正しい翻訳ファイルにリダイレクトする方法はありますか?

プロダクションバージョンは動作しますが、単体テストを作成したいと思い、「アプリケーション」が必要なようです。それは嘲笑される可能性がありますが、最後の手段として、これは場所の割当てに使用されるため、私はむしろ '価値が価値と等しい'ことをテストしたいと考えています。 #wicketから

答えて

1

@selckin:後

new WicketTester(new YourApplicationClas()); 

実際のユニットテストコード:

import org.junit.Before; 
import org.junit.Test; 
import java.util.Locale; 

public class SchedulerModelTest { 
@Before 
public void setup() throws Exception { 
    new WicketTester(new ReconAdminApplication()); 
    Session.get().setLocale(new Locale("en_us")); //always set the locale. 
} 

@Test 
public test(){ 
    Information information = new Information(); 
    assertEquals("Foo is Foo", "Foo", information.getInfo()); 
} 

} 
ちょうどことによってそれを開始
関連する問題