2017-02-02 5 views
0

Я начал развиваться в калитки и задался вопросом, как установить приложение калитки в самом модульном тесте. В настоящее время я использую калитки 6.8 Core. 4.1.2 для единичного испытания.Проверка калитки. Translations.utils not found

Мне интересно, как установить локаль в приложении. Также на самом деле создание тестового приложения в хорошем смысле. То, что я пытаюсь достичь, - это тест, чтобы проверить, может ли быть возвращен набор строк, которые загружаются из файла перевода.

//from the Class. 
public Class Information(){ 

    public Information(){} 

    public String getInfo(){ 
     return TranslationUtil.getTranslation("RandomFieldNameTobeTranslated"); 
    } 
} 

Test Unit:

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. Как перенаправить калитку в нужный файл перевода?

Производственная версия работает, но я хочу построить единичный тест, и для него, похоже, требуется «приложение». Его можно издеваться, но в крайнем случае, поскольку это используется для выделения мест, я скорее хочу проверить значение «значение равно ценности».

ответ

1

@selckin из #wicket: Просто начать его:

new WicketTester(new YourApplicationClas()); 

Actual модульного тестирования кода после того, как:

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()); 
} 

}