2012-11-02 27 views
0

我想测试我的Wicket TextField设置为readonly。我已经建立了我的WicketTester,但只支持assertDisabled()这是无用的,在我的情况下失败。如何测试Wicket TextFields为只读?

我已经试过tester.getComponentFromLastRenderedPage(compName).getString("readonly")tester.getComponentFromLastRenderedPage(compName).getMarkupAttributes().get("readonly")这对我来说听起来很有前途,但未能实现。

+0

你是如何设置TextFields为禁用的? – Nicktar

+0

textFieldInstance.add(新的AttributeModifier(READONLY,READONLY)) –

+0

我认为这是用Selenium最好的测试。 – biziclop

回答

0

不幸的是,WicketTester不会很容易地非常直接地做到这一点,但...

由于AttributeModifier是一种行为,可以拨打

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

和拉离了AttributeModifier实例列表(使用instanceofisAssignableFrom检查)。然后经过一些反思以使事情可以访问,您可以检查是否有符合预期的AttributeModifier

0

这应该是可以解决的:

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

或非常类似的东西。我现在无法测试,所以我不能更具体。 欲了解更多详情,请检查JavaDocs的TagTester