getBoundingClientRect使用&简单地滚动到 Element 函数window.scrollTo,但无法获得 Jest 测试的任何迭代来获得超出branch: 100. 所有其他测试覆盖率为 0。
待测功能:
export default function scrollToEl(el) {
let elRect = el.getBoundingClientRect();
return window.scrollTo(
elRect.left + document.documentElement.scrollLeft,
elRect.top + document.documentElement.scrollTop
);
}
不能在所有类别中提供 100% 覆盖率的 Jest 测试:
import * as scroll from "../scrollToEl";
describe("scrollToEl test", () => {
let element;
let ev = jest.fn();
scroll.scrollToEl = jest.fn(() => {
ev;
});
beforeEach(() => {
element = document.createElement("div");
});
it("should be called", () => {
ev(element)
expect(ev).toHaveBeenCalled();
});
});
如何获得全面 100% 的全面覆盖?请帮忙。
JS函数:
我不得不export default function改变export const scrollToEl = function (el)
export const scrollToEl = function (el) {
// ...
};
测试:
我必须简化测试以获得全面的 100% 覆盖率。我添加并检查了window.scrollTo在新创建的元素上调用实际函数的同时(el)。
import * as scroll from "../scrollToEl";
describe("scrollToEl test", () => {
beforeEach(() => {
window.scrollTo = jest.fn();
});
it("`window.scrollTo` should be called", () => {
const el = document.createElement("span");
scroll.scrollToEl(el);
expect(window.scrollTo).toHaveBeenCalled();
});
});
