umi框架的 jest单元测试用例 模拟异步dispatch
在umi框架中,可以使用@umijs/test模块来进行单元测试。下面是一个示例,模拟了异步dispatch操作:
import { test } from '@umijs/test';
import { delay } from 'roadhog-api-doc';
test('async dispatch', async () => {
const app = await createApp(); // 创建umi应用实例
const dispatch = app._store.dispatch; // 获取dispatch方法
// 模拟异步操作,并在操作完成后dispatch一个action
setTimeout(() => {
dispatch({
type: 'async',
payload: 'done',
});
}, 1000);
// 等待1秒钟,让异步操作完成
await delay(1000);
// 验证action是否被正确dispatch
expect(app._store.getState().async).toEqual('done');
});
在上面的示例中,我们首先获取了umi应用实例的dispatch方法,然后通过setTimeout模拟了一个异步操作,1秒钟后dispatch了一个action。接着使用await delay(1000)等待1秒钟,让异步操作完成。最后使用expect断言验证action是否被正确dispatch
原文地址: https://www.cveoy.top/t/topic/fvBP 著作权归作者所有。请勿转载和采集!