我正在用Wicket构建应用程序,并且正在为我的页面编写JUnit测试。我的页面位于一个包中,其中还包含一个名为wicket-package.utf8.properties
的属性文件。在服务器上部署应用程序时,属性已成功加载:
INFO org.apache.wicket.resource.PropertiesFactory - Loading properties files from file:/tmp/cargo/conf/webapps/my-project/WEB-INF/classes/com/myproject/web/wicket/page/wicket-package.utf8.properties with loader org.apache.wicket.resource.UtfPropertiesFilePropertiesLoader@37024e21
当我运行JUnit测试时出现问题,因为PropertiesFactory加载了一个不同的属性文件:
INFO org.apache.wicket.resource.PropertiesFactory - Loading properties files from jar:file:/home/lovro/.gradle/caches/modules-2/files-2.1/org.apache.wicket/wicket-core/6.16.0/85dd5611907b269f6a25569d9df45513bd0b1b5a/wicket-core-6.16.0.jar!/org/apache/wicket/Application.properties with loader org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@62e7f11d
您可以看到,在服务器上使用了
UtfPropertiesFilePropertiesLoader
,而在测试中,使用了IsoPropertiesFilePropertiesLoader
来加载属性。如何在JUnit测试中强制使用自定义utf8属性文件?
最佳答案
Wicket应该加载所有可用的资源束,即基于UTF-8的资源束和Wicket发行版提供的默认资源束。
它虽然懒惰地加载它们。即仅当从com.myproject.web.wicket.page包中加载页面时,才会加载基于UTF-8的页面。