Как вы тестируете Wicket TextFields только для чтения?

Я хочу проверить, что моя калитка TextField установлен в readonly, Я настроил свой WicketTester но это только поддерживает assertDisabled() что бесполезно и терпит неудачу в моем случае.

Я уже пробовала tester.getComponentFromLastRenderedPage(compName).getString("readonly") а также tester.getComponentFromLastRenderedPage(compName).getMarkupAttributes().get("readonly") и то, и другое звучало многообещающе для меня, но не принесло результатов.

2 ответа

Это должно быть решено с помощью:

TagTester ttest = tester.getTagByWicketId(compName);
assertNotNull(ttest.getAttribute(READONLY));

или что-то очень похожее. Я не могу проверить это прямо сейчас, поэтому я не могу быть более конкретным. Для более подробной информации проверьте JavaDocs TagTester

К несчастью, WicketTester не позволяет легко сделать это напрямую, но...

поскольку AttributeModifier это поведение, вы можете позвонить

Component component = tester.getComponentFromLastRenderedPage("path");
List<IBehavior> behaviors = component.getBehaviors();

и потяните AttributeModifier экземпляры из списка (используя instanceof или же isAssignableFrom чеки). Затем, после некоторого размышления, чтобы сделать вещи доступными, вы можете проверить, есть ли тот, который соответствует вашим ожиданиям AttributeModifier,

Другие вопросы по тегам