开玩笑(反应)spyOn querySelector

时间:2019-05-19 19:42:15

标签: reactjs unit-testing jestjs enzyme spy

我已经成功地模拟了boom中的utilMod函数。在handleClick中,我使用的是一个很大的<ul>列表的querySelector,然后传递到函数boom中。

main.js

import { boom } from '.utilMod';
export class Main extends Component {
    ...
    handleClick() {
        const aContainer = document.querySelector('.a-container');
        const elementArea = aContainer.querySelector('.element-area'); 
        boom(elementArea);
    }
    render() {
        return (
            <div className="test-div" onClick={this.handleClick}></div>
        )
    }
}

测试文件

import { Main } from './main.js';
test('getChangedItems returns correct data', () =>  {
    const props = {}; 
    const mainWrapper = mount(<Main {...props} />);
    mainWrapper.find('.test-div').simulate('click');
    const boomSpy = jest.spyOn(utilMod, 'boom');
    // expect(boomSpy).toHaveBeenCalled(); // this works
    expect(boomSpy).toHaveBeenCalledWith(); // I want this to work now
});

我想通过可能用返回值模拟expect(boomSpy).toHaveBeenCalledWith(my_spy);并然后在我的断言中使用它来测试const elementArea = aContainer.querySelector('.element-area');。有人可以帮忙吗?

0 个答案:

没有答案