我无法复制你所描述的。我参加了Scout HelloWorld项目(创建新项目时生成的项目)。
在
HelloWorldForm
我已经在
MainBox
:
@Order(2000)
public class LengthField extends AbstractIntegerField {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Length");
}
@Override
protected Class<? extends IValueField<?>> getConfiguredMasterField() {
return MessageField.class;
}
@Override
protected void execChangedMasterValue(Object newMasterValue) {
if(newMasterValue instanceof String) {
String s = (String) newMasterValue;
setValue(s.length());
} else {
setValue(0);
}
}
}
在示例单元测试中
HelloWorldFormTest
,我已将附加支票添加到
testMessageCorrectlyImported()
:
/**
* Tests that the {@link MessageField} is correctly filled after start.
*/
@Test
public void testMessageCorrectlyImported() {
HelloWorldForm frm = new HelloWorldForm();
frm.start();
Assert.assertEquals("Message field", MESSAGE_VALUE, frm.getMessageField().getValue());
Assert.assertEquals("Length field", Integer.valueOf(MESSAGE_VALUE.length()) , frm.getLengthField().getValue());
frm.getMessageField().setValue("abcdef");
Assert.assertEquals("Length field (after update)", Integer.valueOf("abcdef".length()), frm.getLengthField().getValue());
}
一切按预期运行