模拟使用使用导入*导入的玩笑的模块以测试React组件

加里玛达卡

文件名Postman.js

"use strict";

define([], function() {
    var postManSingleton = (function() {
        var postManInstance
            , createPostMan = function() {
                var events = {}; 
                return  {
                    publish: function(event, payload) {
                        if(!events.hasOwnProperty(event)) 
                            return;
                        events[event].forEach(function(listener){
                            listener(payload || {});
                        });

                    },
                    subscribe: function(event, listener) {
                        if(!events.hasOwnProperty(event)) 
                            events[event] = [];

                        var index = events[event].push(listener)-1;
                        return {
                            remove: function () {
                                delete events[event][index];
                            }
                        }
                    }
                } 
            };

        return {
            getInstance: function() {
                if(!postManInstance)
                    postManInstance = createPostMan();
                return postManInstance;
            }
        } 
    }());  
    return postManSingleton.getInstance();
});

如index.test.js中那样导入该文件

import * as Postman from 'postman.js';

我如何嘲笑它的发布和订阅事件。我努力了

jest.mock('Postman.publish', () =>({//some code}))

错误: Cannot find module Postman.publish from 'index.test.js'

请帮助如何模拟上述文件。可能吗

安吉特阿罗拉

您的Postman.js位于AMD中,而Jest不支持AMD。因此,您需要将AMD转换为commonjs。

您可以使用babel-plugin-transform-amd-to-commonjs进行转换。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Jest模拟ES6模块导入?

使用“导入模块”还是“从模块导入”?

在Vue组件中导入和使用外部Typescript模块

如何测试使用Jest导入自定义本机模块的React Native组件?

嵌套导入模块的angular2使用组件

使用forRoot()导入模块

使用别名导入模块

在子模块内部使用导入模块中的组件

使用导入模块中的组件

在React应用程序中使用Jest模拟导入/模块

如何模拟css导入进行开玩笑/酶测试?

使用Jest模拟导入模块中的外部用户模块

开玩笑的单次导入模拟模块

玩笑测试(使用babel)无效令牌导入

开玩笑的测试:在打字稿组件导入中找不到模块

如何模拟在测试模块中导入的变量,它不是函数参数(使用describe.each和在每个测试上更改模拟值)

使用从Vue组件导入?

导入使用React-Router-Dom的自定义模块组件时出现问题

开玩笑未能测试导入FontAwesomeIcon的组件

模拟导入的懒惰React组件

如何使用玩笑测试模块,该模块会导入作为构造函数的外部库

Angular 9单元测试:如何模拟测试组件的导入?

如何使用React动态导入组件?/动态导入

导入旧的ES5模块以在ReactJS组件中使用

导入模块的 Python 测试和模拟

使用 node js 导入 React 组件文件

使用 react-intersection-observer 开玩笑测试反应组件

如何使用 Sinon 和 ReactJS 模拟模块导入

如何模拟导入的数组并测试使用函数