2017-05-03 70 views
1

我在main.js以下功能(裝有node.exe):酶引用錯誤 - 無法訪問窗口功能

window.onload =() => { 
    window.getString = function() { 
     <Do something> 
     return value; 
    }; 
} 

以下是我的測試情況下,使用酶和摩卡

import "jsdom-global/register"; 
import React from "react"; 
import {mount} from "enzyme"; 
import Sessions from "./Sessions"; 
describe("Testing Sessions Page",() => { 
    it('should work',() => { 
     let wrapper = mount(<Sessions/>); 
    }); 
}); 

在使用React框架編寫的Sessions組件中,我使用getString方法。當我運行我的測試時,它給出ReferenceError: getString is not defined。如何使測試代碼中的窗口對象可訪問?

回答

0

由於您使用jsdom-global,窗口對象的定義,但的getString不大,所以無論是:

window.getString =() => {};

一)在測試中的描述塊之前定義getString方法

二)存根getStringsinon,如果你想測試它的調用

sinon.stub(window, 'getString');

C)只是包括main.js在您的測試:

import './main.js';