文件名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] 删除。
我来说两句