【发布时间】:2020-12-12 05:00:22
【问题描述】:
我正在测试下面使用 addEventListener 的方法,如下所示,
async testMethod(){
const studentList = document.querySelector("#student_list");
if(studentList != null) {
studentList.addEventListener("scroll", e => {
if (studentList.scrollTop + studentList.clientHeight >= studentList.scrollHeight) {
this.UpdateStudentDetails();
}
})
}
Spec file for the above method is,
it('should respond for scroll event', async () => {
const mockedResponse = {
scrollTop: 100, scrollHeight: 300
}
const mockedListElements:any = { scrollTop: 100, clientHeight: 200, scrollHeight: 300,
addEventListener: jest.fn }
jest.spyOn(document, 'querySelector').mockImplementation(() => mockedListElements)
const listnerSpy = jest.spyOn(mockedListElements, 'addEventListener');
mockedListElements.addEventListener("scroll", new Event("test"))
listnerSpy.mockReturnValue(mockedResponse);
}
在这里,我可以获取 studentList 的数据,但无法测试 addEventListener 方法。
【问题讨论】:
标签: vue.js mocking jestjs addeventlistener