Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Freemarker JspTagLibs未使用Unittest调用_Java_Unit Testing_Freemarker - Fatal编程技术网

Java Freemarker JspTagLibs未使用Unittest调用

Java Freemarker JspTagLibs未使用Unittest调用,java,unit-testing,freemarker,Java,Unit Testing,Freemarker,我正在尝试对一个freemarker.ftl文件进行单元测试,该文件包含jsptaglib(来自HippoCMS) 当尝试包含jsptaglib并给我一条错误消息时,它不起作用 自由标记码 你好step4 我已经测试过,看看模板是否被模仿,它是否真的被模仿 setDirectoryForTemplateLoading(新文件(“../freemarker”); 最终模板模板=configuration.getTemplate(“Helloworld.ftl”) 以这种速度我运行了测试,我

我正在尝试对一个freemarker.ftl文件进行单元测试,该文件包含jsptaglib(来自HippoCMS)

当尝试包含jsptaglib并给我一条错误消息时,它不起作用

自由标记码


你好step4


我已经测试过,看看模板是否被模仿,它是否真的被模仿

setDirectoryForTemplateLoading(新文件(“../freemarker”); 最终模板模板=configuration.getTemplate(“Helloworld.ftl”)

以这种速度我运行了测试,我可以看到ftl文件中的原始数据。确定我是否真的从模板中获取了数据。 所以我试着更进一步,把它画出来(哪里出了问题)

映射模型=新的HashMap()

/*填充模型*/

流程(模型,新的OutputStreamWriter(System.out))

这就是它出错的地方,并在运行测试时给出此错误

包含的目录为

我不知道如何解决这个问题,我已经尝试了很多不同的尝试,但没有运气

参考文献


有人说这个问题在最新版本的freemarker中得到了解决,但事实似乎并非如此。

HippoCMS肯定是通过
freemarker.ext.servlet.FreemarkerServlet
(或通过其子类)调用模板的。这就是添加
JspTaglibs
变量并处理Servlet/JSP集成的原因。您的单元测试调用“独立”模板,因此没有Servlet/JSP支持。您能告诉我如何使用单元测试调用freemarker.ext.Servlet.FreemarkerServlet吗?就像一个代码示例那样。我试着延长时间;freemarker.ext.servlet.FreemarkerServlet在unittest中,但似乎也不起作用;您需要一个模拟(或真正的嵌入式)Servlet环境。我不知道现在什么是最好的解决方案,但一定要寻找现有的解决方案(甚至可能是HippoCMS提供的解决方案,如果有的话,因为模板可能想要访问CMS功能,也必须进行模拟)。