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

如何在Vitest中配置document.cookie以测试Pinia的getCookie函数?

解决Vitest测试Pinia中getCookie函数的域名错误问题

可以通过调整测试环境的Cookie配置解决这个问题,核心是处理测试环境对localhost域名的限制,具体有两种方案:

方案1:设置Cookie时不指定domain

测试代码中设置Cookie时,不要添加domain=localhost参数,直接用路径参数即可:

// 测试前设置Cookie
document.cookie = "testCookie=123; path=/";

这样你的getCookie函数能正常读取,同时不会触发公共后缀域名的错误提示。

方案2:全局配置Vitest的jsdom环境

如果需要保留domain设置,可在vitest.config.js中配置CookieJar允许特殊域名:

export default defineConfig({
  test: {
    environment: 'jsdom',
    environmentOptions: {
      jsdom: {
        cookieJar: {
          allowSpecialUseDomain: true,
          rejectPublicSuffixes: false
        }
      }
    }
  }
})

这个配置会让测试环境的Cookie处理逻辑允许localhost这类特殊域名,彻底解决该类报错。

你的getCookie函数本身逻辑没有问题,报错原因是测试环境(jsdom)默认限制了公共后缀域名的Cookie设置,以上两种方案都能解决测试问题。

内容的提问来源于stack exchange,提问作者user14131782

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:00:53