gpt4 book ai didi

reactjs - 如何在 react 测试库中模拟视频持续时间?

转载 作者:行者123 更新时间:2023-12-05 04:50:18 25 4
gpt4 key购买 nike

如何使用 react 测试库从触发事件 loadedMetadata 模拟视频持续时间?

在我的 React 代码中,我正在使用 loadedMetaData 事件监听器检索视频持续时间:

const MyVideo = () => {
const [videoDuration, setVideoDuration] = useState(0);

const handleMetadataLoaded = e => {
setVideoDuration(e.currentTarget.duration);
}

return (
<video
data-testid="vidMyVideo"
src="*some_source*"
poster="*poster_image*"
onLoadedMetadata={handleMetadataLoaded}
/>

);

}

然后我尝试对上面的代码进行单元测试:

import '@testing-library/jest-dom/extend-expect';
import { act, fireEvent, render } from '@testing-library/react';

...

const MyVideo = require('../').default;
const { findByTestId } = render(
<MyVideo />
);
const inlineVideo = await findByTestId('vidMyVideo');
// the event is fired but I got NaN for the duration. how to mock it?
await act(async () => fireEvent.loadedMetadata(inlineVideo));

loadedMetadata 已被触发,但在此期间我得到的是 NaN。如何模拟视频时长?

最佳答案

可以修改jsdom对象

Object.defineProperty(inlineVideo, 'duration', {
writable: true,
value: 10,
});

关于reactjs - 如何在 react 测试库中模拟视频持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67342306/

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