gpt4 book ai didi

unit-testing - vue.js unit :test w test-utils and Jest : How can I test - window. open() 在一个方法中?

转载 作者:行者123 更新时间:2023-12-03 06:44:25 27 4
gpt4 key购买 nike

在我的组件 AudioPlayer 中,我有一个 download() 方法:

download() {
this.audio.pause();
window.open(this.file, "download");
},

我可以测试第一行:
this.audio.pause();

但是我该如何测试(我应该吗?第二行:
window.open(this.file, "download");

这是我当前的规范文件测试
  it("should open a window from downloadBtn", async () => {
// jsdom doesn't support any loading or playback media operations.
// As a workaround you can add a few stubs in your test setup:
window.HTMLMediaElement.prototype.pause = () => { /* do nothing */ };
// given
const wrapper = mount(AudioPlayer, {
attachToDocument: true,
propsData: {
autoPlay: false,
file: file,
ended,
canPlay
}
});
const downloadBtn = wrapper.find("#downloadBtn");
wrapper.vm.loaded = true; // enable downloadBtn
// when
downloadBtn.trigger("click");
await wrapper.vm.$nextTick();
// then
expect(wrapper.vm.paused).toBe(true);
});

感谢反馈

最佳答案

您可以更换 window.open使用一个 Jest 模拟函数,然后像往常一样测试模拟调用。

window.open = jest.fn();
window.open('foo');
expect(window.open).toHaveBeenCalledWith('foo');

关于unit-testing - vue.js unit :test w test-utils and Jest : How can I test - window. open() 在一个方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52188952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com