Java 如何测试链接';Wicket中的文本
我试图在Wicket中实现一个动态文本链接,并将用户名作为其文本。我的第一个想法是在标记中执行如下操作:Java 如何测试链接';Wicket中的文本,java,unit-testing,tdd,wicket,wicket-tester,Java,Unit Testing,Tdd,Wicket,Wicket Tester,我试图在Wicket中实现一个动态文本链接,并将用户名作为其文本。我的第一个想法是在标记中执行如下操作: <a wicket:id="somelink"><wicket:message key="some.key">bla bla</wicket:message></a> 以及守则: String username = ... add(new Link("somelink", new StringResourceModel("some.key",
<a wicket:id="somelink"><wicket:message key="some.key">bla bla</wicket:message></a>
以及守则:
String username = ...
add(new Link("somelink", new StringResourceModel("some.key", this, null, username)) {
...
});
问题是我不知道如何测试链接的文本是否被设置为用户名(即在单元测试中)。我试过:
- 使用
的WicketTester
方法,但它不能将assertLabel
强制转换为链接
标签
- 使用
的链接
方法返回原始消息(即在将用户名格式化为原始消息之前)getModelObject()
- 向消息添加id并直接通过路径访问它是不起作用的,因为我得到的消息是该路径不存在(您甚至可以为
元素提供id吗?)wicket:message
WicketTester.getTagById(java.lang.String)
或WicketTester.getTagByWicketId(java.lang.String)
?它们返回一个TagTester
对象,并TagTester.getValue()
返回此标记的值。这包括打开标记和关闭标记之间作为字符串的所有数据。然后,您可以对结果字符串使用assertEquals和您的期望值
TagTester link = WicketTester.getTagByWicketId("someLink");
assertNotNull(link);
String linkText = link.getValue();
asserEquals("Username is: " + username, linkText);
怎么样
WicketTester.getTagById(java.lang.String)
或WicketTester.getTagByWicketId(java.lang.String)
?它们返回一个TagTester
对象,并TagTester.getValue()
返回此标记的值。这包括打开标记和关闭标记之间作为字符串的所有数据。然后,您可以对结果字符串使用assertEquals和您的期望值
TagTester link = WicketTester.getTagByWicketId("someLink");
assertNotNull(link);
String linkText = link.getValue();
asserEquals("Username is: " + username, linkText);
看起来不错:-)今天晚些时候我会试一试。谢谢看起来不错:-)今天晚些时候我会试一试。谢谢