You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vitest中Redux Toolkit Thunk测试结果不符合预期的问题求助

Vitest中Redux Toolkit Thunk测试结果不符合预期的问题求助

各位大佬好,我遇到个头疼的问题:我在项目里做了个NPC躲避逻辑——当玩家和NPC的距离在1到2格之间时,NPC会通过一个thunk分发动作,主动往后退1格。这个功能在项目里跑起来完全正常,但到Vitest测试环节就怎么都复现不出预期效果,肯定是我漏了什么非常明显的细节,可我就是找不出来……我用的技术栈是Redux Toolkit + Vitest。

目前我的测试代码大概是这样的:

describe('thunks', () => {
  it('should dispatch moveNpcAction and update state when handleUncaughtChickenResponse is called', async () => {
    const initialState = {
      actors: mockActors1,
      map: mockMap1
    };

    // Mock store方法
    const dispatch = vi.fn();
    const getState = vi.fn((): RootState => initialState);

    // 执行动作
    await handleUncaughtChickenResponse()(dispatch, getState, undefined);

    // 验证dispatch是否调用了正确的action
    expect(dispatch).toHaveBeenCalledWith(moveNpcAction({ id: 'chicken1', dx: 1, dy: 0 }));

    // 验证状态是否按预期更新
    const updatedState ...

现在不仅状态更新的验证卡壳了,就连dispatch的断言也可能有问题,我实在摸不着头绪,有没有朋友能帮我分析分析哪里出错了?

备注:内容来源于stack exchange,提问作者James Ward-Sinclair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:14:29