2016-09-02 6 views
1

Я пытаюсь настроить панель калитки с помощью WicketTester и Spock/Mockito.Как насмехаться с компонентом Wicket

На этой панели в хорошем сценарии отображается сообщение ModalWindow (диалог подтверждения).

Я хочу проверить это диалоговое окно, поэтому я попытался издеваться над компонентом, ввести его в панель и проверить, вызван ли метод show. Это не будет работать, так как калитка выдает следующее сообщение об ошибке:

java.lang.IllegalStateException: org.apache.wicket.Component has not been properly detached. 
Something in the hierarchy of X has not called super.onDetach() in the override of onDetach() method 

Это не удивительно, макет не может вызвать метод onDetach на это супер класс.

Я пробовал обрезать ModalWindow и использовать шпион, чтобы проверить, вызван ли метод show, но реализация этого метода имеет зависимости/внешние вызовы, которые сложно издеваться.

В какой форме я должен подходить к этой проблеме? Или я даже не пытаюсь сделать такую ​​тестовую работу?

ответ

0

Я бы создал пользовательскую версию ModalWindow, которая просто переопределяет метод #show(), чтобы вызвать super.show() и поднять флаг, вызываемый методом. Затем используйте эту пользовательскую версию в тесте панели.