2017-02-02 108 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

從#wicket @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()); 
} 

} 
僅僅通過它啓動
相關問題