javascript - 运行 Jest 时替换 `require.context`

标签 javascript reactjs vue.js jestjs

我正在尝试使用 Jest 为我的 React 应用程序运行测试。 ,但我的测试一直失败,因为错误提示 require.context不是函数。我正在寻找 Jest 的功能的替代品。不会窒息。我正在尝试动态 require并修改一些*.vue来自 Vue.js 的文件稍后在我的应用程序中使用。除此之外,我偶尔会遇到无法识别 .vue 格式的错误。文件并说它们无法解析。这是有问题的代码:

function inject(comp) {
    comp.methods = Object.assign({}, comp.methods, stub.methods);
    return comp;
} 

let req = require.context('./', false, /\.vue$/);
components.forEach(function (component) {
    try {
        let filePath = __dirname + "\\" + component + '.vue';
        let injected = inject(req(filePath));
        Vue.component(getComponentName(component), injected);

        let appComponent = {
            name: injected.name,
            props: {
                autocompletion: {
                    metadata: getComponentName('template'),
                    score: xTemplatesScore,
                    attributes: injected.props || []
                }
            }
        };

        appComponents.push(appComponent);
    } catch (err) {
        console.log(err);
        console.error('Vue file was not found for component:' + component + '. Please rename your files accordingly ( component-name.vue )');
    }
});

最佳答案

如果有人仍然遇到这个问题,你需要知道 require.context是一个特定于 webpack 的特性,所以它不能开 Jest 。
您可以尝试模拟它,就像有人在此 How can I mock Webpack's require.context in Jest? 中提供的答案一样所以问题。但是如果没有任何解决方法,您将无法使用它。

关于javascript - 运行 Jest 时替换 `require.context`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302677/

相关文章:

javascript - 使用自定义字符串更新 Firebase

javascript - 页面加载后Jquery图像向上滑动

reactjs - html 标签 "/href"和 navlink 或 Link 之间的区别

javascript - 在 Vue 中,我是否可以更新传递给方法的数据属性,以便它随后更新 UI?

javascript - VueJS : Adding to existing HTML and handling imports

javascript - 如何在点击时检索当前日期和后续日期

javascript - 添加到代码中的 Jquery 选项卡使自动滚动(垂直)滚动过去 anchor

css - 如何为非表单文本使用 material-ui 主题错误样式(颜色)

javascript - 如果对象未定义,加载组件的最佳方法

javascript - 使用 vue.js 在 Canvas 上绘图