【发布时间】:2020-03-17 22:16:44
【问题描述】:
我正在设置 jest,但它没有找到 window.I18n.t(),因为它是由 sprockets 定义的(ruby on rails,独立于 webpack)。所以我想嘲笑这种方法。这是错误:
FAIL spec/javascript/sanity_test.js
● Test suite failed to run
TypeError: Cannot read property 't' of undefined
24 |
25 | export const newOrderPreferenceObject = {
> 26 | label: window.I18n.t("some.path.in.localization"), default_value: "",
在 package.json 我可以这样做:
"jest": {
"testEnvironment": "jsdom",
"globals": {
"window": {
"I18n": { "t": {} }
}
},
我也将 testEnvironment 从 jsdom 更改为 node。
但是,t() 必须是函数,而不是数据结构。那么我该如何在window 中放入一个函数进行开玩笑测试呢?
【问题讨论】:
-
您的
src目录的根目录下是否有一个开玩笑的setupTests.js文件? -
@DrewReese 我关注了这个:jestjs.io/docs/en/configuration#globalsetup-string 但这不起作用 - 从那里看不到全局名称“winow”。