从库中模拟ES6类

纳雷什

WindowEnv在尝试模仿的库中有一个ES6类。该类位于@react-force/models我的React应用程序依赖的名为package中这是WindowEnv该类的代码

// Env.ts in @react-force/models
export interface Env {
    get: (varName: string) => string;
}

export class WindowEnv implements Env {
    get(varName: string): string {
        return (window as any)._env_[varName];
    }
}

这是在我的应用程序中使用此类的代码:

const env = new WindowEnv();
export const api = axios.create({
    baseURL: env.get('API_URL'),
});

我试图WindowEnv通过在中添加以下代码来模拟该类/__mocks__/@react-force/models.ts

//  /__mocks__/@react-force/models.ts
export const WindowEnv = jest.fn(() => {
    return {
        get: (varName: string): string => {
            switch (varName) {
                case 'API_URL': {
                    return 'http://localhost:8080';
                }
                default: {
                    return '';
                }
            }
        },
    };
});

不幸的是,这没有什么区别。该测试无法看到模拟并引发错误。我究竟做错了什么?

模拟类与整个项目一起在此处可用

那将是烧瓶

如Jest文档所述:

如果您要模拟的模块是Node模块(例如:lodash),则模拟应放置在__mocks__与node_modules相邻目录中(除非您将根配置为指向项目根目录以外的文件夹),并且将被自动模拟。

这样,全局模块模拟不会干扰驻留在中的本地模拟src

这是一个已知的问题对于node_modules在创建应用程序做出反应嘲笑项目。__mocks__需要移动到里面src

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从库中模拟ES6类

来自分类Dev

使用嵌套类在ES6中模拟名称空间

来自分类Dev

用TypeScript在Jest中模拟ES6类方法

来自分类Dev

模拟ES6 BigQuery类

来自分类Dev

如何模拟在类中传递 ES6 其余参数

来自分类Dev

ES6类文字中的IIFE

来自分类Dev

ES6类中的成员变量

来自分类Dev

在es6中克隆类

来自分类Dev

es6类方法中的“ this”

来自分类Dev

在ES6中扩展String类

来自分类Dev

在ES6中扩展String类

来自分类Dev

ES6类中“ this”的范围

来自分类Dev

如何使用 __mocks__ 文件夹中的模拟文件在 ES6 类中手动模拟方法?

来自分类Dev

测试扩展类时,基本ES6类的玩笑模拟方法(超级方法)

来自分类Dev

Javascript 在类构造函数中调用类 (ES6)

来自分类Dev

我可以在带有ES6(V8)的库中的Google Apps脚本中使用定义的类吗?

来自分类Dev

JavaScript ES6:es6类中的分组方法?

来自分类Dev

如何使用react-router和ES6类模拟window.location

来自分类Dev

嵌套的ES6类?

来自分类Dev

ES6类的范围

来自分类Dev

ES6 JavaScript 类

来自分类Dev

在ES6中,如何检查对象的类?

来自分类Dev

es6类中的reactjs'this'上下文

来自分类Dev

从ES6类的Promise中设置属性

来自分类Dev

在类React ES6中调用静态函数

来自分类Dev

ES6类中对super(props)的调用重要吗?

来自分类Dev

ES6类中的javascript'this'返回未定义

来自分类Dev

Javascript ES6 Promise在类函数中

来自分类Dev

在ES6中是否允许销毁类实例属性?