在Jest中监听自定义Svelte事件,可以通过以下步骤实现:
npm install --save-dev jest svelte-jester
import { render, fireEvent } from '@testing-library/svelte';
import MyComponent from '../MyComponent.svelte';
test('should listen to custom event', async () => {
const { component } = render(MyComponent);
// 等待组件加载完成
await component.$component.$$.ctx.$promise;
// 触发自定义事件
fireEvent(component, 'customEvent');
// 断言期望的结果
expect(component.$$.ctx.customEventHandled).toBe(true);
});
<script>
export let customEventHandled = false;
function handleCustomEvent() {
customEventHandled = true;
}
</script>
<button on:click={handleCustomEvent}>Click me</button>
在这个例子中,我们创建了一个名为customEventHandled
的变量来跟踪自定义事件是否被处理。当按钮被点击时,handleCustomEvent
函数会被调用,并将customEventHandled
设置为true
。
npm test
这样,你就可以在Jest中监听自定义Svelte事件了。记得根据实际情况进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云