我已经成功地模拟了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');
。有人可以帮忙吗?