2015-11-01 3 views
0

есть проблема, с которой я борюсь и не могу найти ничего полезного в Интернете. У меня есть форма с wicketID «addressform», которая является панелью внутри основного шаблона. Я пытаюсь проверить это следующим образом:Apache Wicket FormTester не работает должным образом

public void testLinkToAddressFormValid(){ 
    PageParameters params = new PageParameters(); 
    params.add("entity", "address"); 
    params.add("viewMode", "2"); 
    params.add("subMode", "0"); 
    params.add("key", "1"); 

    // start Main Page with given parameters 
    tester.startPage(Main.class, params); 

    // try to test a new form 
    FormTester formTester = tester.newFormTester("addressform",false); 
    formTester.submit(); 
    } 

Обычно я называю форму адреса с помощью

setResponsePage(new Main("address",2,0,1)); 

, который заменяет содержание основного шаблона с AddressForm (класс называется AddressForm whcih расширяет панель). Параметр AddressForm принимает некоторые параметры.

В конце я получаю исключение «junit.framework.AssertionFailedError: путь:« addressform »не существует для страницы: Главная». На данный момент я использую Apache Wicket 6.0

ответ

0

Утверждение, что на самом деле главная страница отображается после вызова startPage(). Может быть, у вас есть стратегия аутентификации, которая перенаправляется на страницу входа?

+0

Эй, мартин, спасибо за подсказку. Конечно, есть механизм аутентификации, но перед запуском тестовых примеров существует метод, который выполняет аутентификацию. Странная вещь здесь заключается в том, что она показывает мне, что адресная форма не будет существовать для главной страницы, но Main - это мой шаблон и адресная панель, которая отображается внутри шаблона. Может быть, нам нужно сделать еще один путь для вызова newFormTester()? Может быть, что-то вроде панели: addressform? – Moe

+0

Используйте tester.debugComponentTrees(), чтобы увидеть структуру компонентов. –

Смежные вопросы