Umi 框架单元测试:模拟异步 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/oijR 著作权归作者所有。请勿转载和采集!