你如何测试Wicket TextFields是否只读?

时间:2012-11-02 09:37:43

标签: java unit-testing wicket readonly wicket-tester

我想测试我的Wicket TextField设置为readonly。我已经设置了我的WicketTester但是只支持assertDisabled(),这对我来说是无用的并且失败了。

我已经尝试了tester.getComponentFromLastRenderedPage(compName).getString("readonly")tester.getComponentFromLastRenderedPage(compName).getMarkupAttributes().get("readonly")这对我来说听起来有点让人承诺但未能实现。

2 个答案:

答案 0 :(得分:0)

不幸的是,WicketTester并不容易直接做到这一点,但是......

由于AttributeModifier是一种行为,您可以调用

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

并从列表中提取AttributeModifier个实例(使用instanceofisAssignableFrom检查)。然后经过一些反思以便可以访问,您可以检查是否有符合预期AttributeModifier的内容。

答案 1 :(得分:0)

这应该可以解决:

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

或类似的东西。我现在无法测试,所以我不能更具体。 有关更多详细信息,请查看TagTester

的JavaDoc