我正在尝试测试需要.ejs文件的javascript函数,但是在运行测试时,require('file.ejs')
将完全按原样返回文件,而不在内部运行任何js
实时环境没有问题,只有Jest测试环境有问题。
我尝试使用不同的ejs加载器,例如('ejs-loader')并覆盖了'require'函数,但是问题没有改变。
如果我在.test.js中使用require
方法,则不会解析.ejs中的js
例如:
require('file.ejs')
<%
var data = {importantData: 'datadata'}
%>
<div>
<%= require('anotherFile.ejs')(data) %>
</div>
将返回:
file: function (obj) {
obj || (obj = {});
var __t, __p = '', __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) {
var data = {importantData: 'datadata'}
;
__p += '\n<div>\n ' +
((__t = ( require('anotherFile.ejs')(data) )) == null ? '' : __t) +
'\n</div>\n';
}
return __p
}
预期输出为:
<div>
<div class="another-file"></div>
</div>
任何有关如何解决此问题的想法将不胜感激