我正在尝试使用上面列出的四个库来模拟我正在使用的组件的窗口对象.
我知道可以使用JSDom完成,但客户端反对使用它.根据我的研究,简单地做sinon.stub(窗口,’位置’)应该工作,但是当我运行我的测试时,我仍然在我的组件中得到Window undefined.
目前,在render return {window.location.host}中调用该组件
我想做什么错误的任何想法,让sinon剔除那件作品.一旦我删除了那一块,那么我就可以专注于测试那个与窗口无关的组件的其他部分.
我的测试方法:
import React from 'react'; import { shallow } from 'enzyme'; import chai from 'chai'; chai.should(); import sinon from 'sinon'; import BillingStatementRow from '../BillingStatementRow'; describe('Test <BillingStatementRow /> Component',function() { context('Function Testing',function() { it('Test - onFieldChange - Make sure it handles NaN',function() { var e = {target: {value: NaN}}; var window = { location : { host : "..." } }; var mockedOnChange = sinon.spy(); const wrapper = shallow ( <BillingStatementRow slds={''} key={'1'} Id={'1'} inputValue={'0'} salesInvoice={'SIN0001'} invoicedAmount={1000} duedate={'1461628800000'} outstandingBalance={1000} receiptRemaining={1000} amountAllocated={1000} onChange={mockedOnChange.bind(this,'BS0001')} /> ); wrapper.instance().onFieldChange('amountAllocated',e); wrapper.update(); }) }); });