2017-05-16 24 views
0

用玩笑嘲讽和酶的浅渲染,你会如何测试或嘲笑以下?:如何测试和/或模拟ref回调节点和用Jest mocking测试.querySelector +酶浅?

onClick =() => { 
    const inputNode = this.node.querySelector('input'); 
    inputNode.click(); 
    }; 

我想:

it('calls button',() => { 
    const wrapper = shallow(
    <Component />, 
); 
    const wrapperInstance = wrapper.instance(); 
    const inputNode = document.createElement('input'); 
    inputNode.value = ''; 
    const node = document.createElement('div').appendChild(inputNode); 
    wrapperInstance.node = node; 
}); 

回答

2

这里是我会嘲笑的节点。

it('calls button',() => { 
    const wrapper = shallow(
    <Component />, 
); 
    const wrapperInstance = wrapper.instance(); 
    const input = {value: 'someValue'} 
    const node = { 
    querySelector: (v) => v === 'input' ? input : null 
    } 
    wrapperInstance.node = node; 
});