2017-12-07 2 views
1

파일 이름은 내가 조롱 어떻게 index.test.js모의 모듈은

import * as Postman from '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(); 
}); 

을 Postman.js 구성 요소를 반응 농담으로 이벤트를 게시하고 구독하십시오. 내가 시도

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

오류 : Cannot find module Postman.publish from 'index.test.js'

는 위의 파일을 조롱 할 수 방법을 도와주세요. 심지어 가능할까요?

답변

1

귀하의 Postman.js는 AMD &입니다. Jest는 AMD를 지원하지 않습니다. 따라서 AMD를 commonjs로 변환해야합니다.

babel-plugin-transform-amd-to-commonjs을 변환에 사용할 수 있습니다.