【发布时间】:2018-07-19 08:40:14
【问题描述】:
我尝试使用theintern 进行单元/功能测试,但我使用 webpack 捆绑/加载模块,使用 webpack-dev-server 进行本地开发,使用 babel 进行 JS 转换。
当我尝试加载组件时,我的组件中通过导入导入的文件出现错误。
// a.js
const getWindowLocation = window.location
export default getWindowLocation
// b.js
import getWindowLocation from "a.js"
const anotherVar = getWindowLocation
// make some work with anotherVar
export default anotherVar
// c.js
import anotherVar from "b.js"
// module i try to test
const something = somevalue
export default something
然后在我的测试文件中:
// test.c.js
import something from "c.js"
但是,当我加载我的测试套件时,出现如下错误:
ReferenceError: window is not defined
at getWindowLocation <a.js>
at Object.<anonymous> <b.js>
我使用 jsdom 启用 window,它适用于 c.js,但不适用于其他模块。
那么,如何配置实习生在没有 SystemJS 和 Typescript 的情况下处理来自 webpack 的模块?
【问题讨论】:
-
你能把你的项目(或示例项目)贴在某个地方吗?
window错误表明某处可能存在配置问题。如果你还没有的话,你也可以看看实习生webpack example。 -
感谢您的回答!我将尝试举一个例子。我已经看过 webpack 的示例,但是它使用 webpack 来构建它的测试文件,而不是 Webpack Entry point 项目的那些。本地文件在index.html中用下划线和主干处理
-
嗨,我做了这个小例子:github.com/ethyde/test-theintern-webpack