gpt4 book ai didi

java - 使用 WicketTester 验证 validator 是否已添加到 TextField?

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:04 27 4
gpt4 key购买 nike

我在我的 wicket 应用程序中使用了以下面板,我想编写一个测试以确保调用 addPatternValidator(String pattern) 将 PatternValidator 添加到 TextField。

public class StringTextBoxPanel extends Panel {
private static final long serialVersionUID = 1L;

private String stringModel = new String();
private TextField<String> textfield;
private Label label;

public StringTextBoxPanel(String id, String labelText) {
super(id);
label = new Label("label", labelText);
textfield = new TextField<String>("textField", new PropertyModel<String>(this, "stringModel"));
add(label);
add(textfield);
}

public String getValue() {
return textfield.getValue();
}

public void addPatternValidator(String pattern) {
this.get(textfield.getId()).add(new PatternValidator(pattern));
}

public void setRequired() {
textfield.setRequired(true);
}
}

是否可以使用 WicketTester 做到这一点?

最佳答案

在 WicketTester 中启动一个 FormTester,向您的 TextField“输入”一些非法值,让 FormTester 提交表单并

a) 检查模型,无效值不会写入模型

b) 检查错误信息

但说实话并提供我的想法不是要求,我不太明白,为什么你想测试这个...... add 方法是 wicket 的一部分,不应该由你测试,而应该由 Wicket 口开发人员。这同样适用于 PatternValidator 类,但您可能想要测试您的模式。至于此方法中的其余代码……就我而言,这是微不足道的,无法证明测试的合理性。

附录(如评论中所述,有更简单的方法来确保调用了一个方法,而不是调用 FormTester。此代码段只是被侵入了此编辑器,因此没有应用任何 IDE 检查):

private Boolean methodCalled = false;

@Test
public void testSomething() {
WicketTester tester = new WicketTester();
tester.startComponentInPage(new StringTextBoxPanel("id", "someText") {

@Override
public void addPatternValidator(String pattern) {
methodCalled = true;
}
});
AssertTrue(methodCalled);
}

关于java - 使用 WicketTester 验证 validator 是否已添加到 TextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com