Как вы тестируете 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
,