我正在一个项目中,该项目的方法在index.html
文件的script标签中定义。由于某种原因,这会导致Jest在运行时失败。
index.html
<script>
var getCookie = function(cookieVal) { return cookieVal; }
</script>
要解决此问题,我尝试在Jest全局变量中定义“ getCookie”变量,例如:
package.json
"jest": {
"globals": {
"getCookie": "someString"
}
}
这确实定义了getCookie
,但是在运行测试时出现此错误:
data()中的错误:“ TypeError:getCookie不是函数”
这很有意义,但是我不确定如何在globals
对象中将其定义为函数。
如何在Jest中模拟getCookie
函数?
答案 0 :(得分:1)
即使使用Jest docs indicate that globals
cannot contain functions,我仍然验证仍可以使用function expression或arrow function来定义全局函数:
{
jest: {
globals: {
getCookie() { return 'someCookie' }, // function expression
getCookie: () => 'someCookie', // arrow function
}
}
}
或者,您可以定义一个setupFiles
来设置global.getCookie
:
// package.json
{
jest: {
setupFiles: ['./jest.setup.js']
}
}
// jest.setup.js
global.getCookie = () => 'someCookie'