如何使用 Jest + Vuejs 模拟 window.location.href?

2024-03-28

目前,我正在为我的项目实施单元测试,并且有一个文件包含window.location.href.

我想模拟这个来测试,这是我的示例代码:

it("method A should work correctly", () => {
      const url = "http://dummy.com";
      Object.defineProperty(window.location, "href", {
        value: url,
        writable: true
      });
      const data = {
        id: "123",
        name: null
      };
      window.location.href = url;
      wrapper.vm.methodA(data);
      expect(window.location.href).toEqual(url);
    });

但我收到这个错误:

TypeError: Cannot redefine property: href
        at Function.defineProperty (<anonymous>)

我该如何解决呢?


你可以试试:

window = Object.create(window);
const url = "http://dummy.com";
Object.defineProperty(window, 'location', {
  value: {
    href: url
  },
  writable: true // possibility to override
});
expect(window.location.href).toEqual(url);  

看看这个问题的 Jest Issue:
玩笑问题 https://github.com/facebook/jest/issues/5124

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Jest + Vuejs 模拟 window.location.href? 的相关文章

  • `success` 方法已被弃用。使用“then”方法代替

    您好 我是 Vue 世界的新手 这是我收到的警告 成功方法已被弃用 请改用 then 方法 这是代码 apiURL api movies new Vue el app data movies ready function this getM
  • JUnit、测试和线程

    当我连续运行多个 JUnit 测试时 JUnit 是否为每次执行创建一个新线程 或者所有内容都包装在一个线程中 Thanks 这一切都在一个线程上 您没有说明如何调用测试 但例如 运行 TestSuite 将按顺序运行套件中的所有测试 如果
  • 观察者不触发

    我正在使用带有选项 API 的 Vue 3 如下面发布的代码所示 在watch对象 我监视发生的变化isToggleBtnLabelDigitizePolygon 在方法中onDigitizePolygon我改变的值isToggleBtnL
  • 如何在外部 .js 文件中分离 .vue 组件的方法?

    我的组件留下了许多行代码 因此我决定将这些方法放在一个名为functions js 的单独文件中 我无法调用这些方法 我试过这个 函数 js function sendList function getLists function dele
  • 对 git Push 运行单元测试,对 Pull 请求运行集成测试

    在构建 R 包时 我们使用 testthat 来编写测试 我们有 2 个文件 特定包的测试文件 特异性R 我们用它来确保所有包继续一起工作并且总体结果良好 整体R 当前 当我们推送到 github 或通过 Travis 创建 PR 时 都会
  • 带有 Spock Stub 的泛型

    我无法为泛型类编译 Spock 存根 构造函数的签名如下 SomeClass SerSup
  • 如何对动态渲染 html 和 css 的 Java 代码进行单元测试?

    我有一个 Java 类 它从数据库获取表单定义 然后根据表单定义呈现 html javascript 和 css 它使用大量 appendable append append 来构建html 片段 这很容易出错 Jsp 和通用模板框架 例如
  • 当路由器处于历史模式时,PWA 不会加载(基于 Vue CLI 3 的项目)

    我有一个基于 Vue CLI 3 的应用程序 我想将其用作 PWA 我需要它在历史模式下工作 因为哈希会介入我正在执行的基于 OAuth 的身份验证过程的一部分的重定向 当路由处于哈希模式时 可以像 PWA 一样正常加载 一旦我将模式更改为
  • 单元测试(有时)会因为浮点不精确而失败

    我有课Vector代表 3 维空间中的一个点 这个向量有一个方法normalize self length 1 将矢量缩小 放大为length vec normalize length length 该方法的单元测试有时由于浮点数的不精确性
  • Vuetify 默认轮播 CSS 选择器,用于减少过渡持续时间

    I need a transition that does not produce the dreaded image blinking for a v carousel item Ideally it s a smooth and qui
  • VS2012 & TFS2012 单元测试主要问题

    我们使用 VS2012 和 TFS2012 并为我们的代码编写单元测试 我们想要报告代码覆盖率 并在单元测试中使用 config 文件来测试应用程序设置 以及一些其他日志记录设置 MS Enterprise 库设置等 App config
  • 如何使用 Moq 模拟 Web 服务调用?

    The using下面点击了我不想实际点击的外部资源 我想测试someResult以及使用它的代码 但每次我运行单元测试时 该代码仍然尝试访问真正的 Web 服务 如何使用最小起订量来伪造对 Web 服务的真实调用 但不模拟使用中的其余代码
  • 如何测试抽象类的受保护抽象方法?

    我一直在研究测试名为的抽象类的最佳方法TabsActionFilter 我保证继承自的类TabsActionFilter将有一个名为GetCustomer 在实践中 这种设计似乎效果很好 我遇到的一些问题是弄清楚如何测试OnActionEx
  • 如何将typescript添加到Vue 3和Vite项目中

    我的设置 我通过以下方式安装了 Vue 和 Vite创建 vite 应用程序模块 然后将 init vite app 生成的所有包更新为 Vue 和 Vite 的最新 RC 版本 现在我想对我的所有代码使用打字稿 首先我只是玩了一下 然后添
  • 使用 Vue.JS 时,我们是否被迫在 CSP 中使用“unsafe-inline”?

    有没有办法让 Vue js 与 CSP 正常配合 当我运行我的spa应用程序 由npm run generate使用 Nuxt js 我会收到几个警告 例如 拒绝应用内联样式 因为它违反了以下规定 内容安全策略指令 style src se
  • 如何将 Enzyme Shallow 与 Jest 快照结合使用

    我正在尝试使用shallow https github com airbnb enzyme blob master docs api shallow md from enzyme https github com airbnb enzyme
  • Google 测试中没有模拟的 EXPECT_CALL

    有没有办法通过 GoogleTest for c 测试函数调用而不创建模拟对象 例如我们有以下生产代码 if a method x 我想测试一下是否method在这种情况下将被调用a是真的并且a是假的 我想构建一个与 Google Test
  • 类型错误:无法读取未定义的属性“getters”

    我正在尝试测试一个引用 Vuex 商店的基本 Vue 组件 我以为我遵循了 Vue 的例子 https vue test utils vuejs org guides using with vuex html mocking getters
  • React Native + Jest EMFILE:打开文件太多错误

    我正在尝试运行 Jest 测试 但收到以下错误 读取文件时出错 Users mike dev react TestTest node modules react native node modules yeoman environment
  • vuejs2复制剪贴板问题

    我正在尝试使用https alligator io vuejs vue clipboard copy https alligator io vuejs vue clipboard copy 对于 Vue js 中的复制剪贴板功能 它对于字符

随机推荐

  • Django 使用 Ajax 登录?

    我正在开发一个 jquery 函数来使用 ajax 发布登录表单 在ajax成功中 如果登录成功与否 我想以不同的方式处理响应 因此 在 Django 中 我想知道是否可以在现有登录视图的基础上添加一些成功 错误变量 以便与返回的页面一起发
  • 在 C# 中声明事件的语法是什么?

    在我的班级中 我想声明一个其他班级可以订阅的事件 声明事件的正确方法是什么 这不起作用 public event CollectMapsReportingComplete 你忘了提及type 对于非常简单的事件 EventHandler h
  • 由于iOS 7,视图不出现

    我在装有 iOS 7 的 iPhone 上尝试了我的应用程序 除了一件事之外 一切都运行良好 在 iOS 6 版本上 当我执行以下代码时 加载视图 带有活动指示器 出现并在加载结束时消失 在 iOS 7 上 加载期间根本不会出现视图 sel
  • 在 Google Cloud Build yaml 中克隆私有 GitHub 存储库

    根据一个note https cloud google com cloud build docs access private github repos在 Cloud Build 文档中 标题为访问私有 GitHub 存储库 当您使用 Cl
  • 如何保存循环中的字符输出?

    所以我做了这个函数 它只需要一个数字元素 而不是一个向量 salaryCategory function s if s gt 40000 s lt 70000 print Low if s gt 70000 s lt 100000 prin
  • 导入错误:没有名为 cloud.ml 的模块

    我正在尝试按照说明在张量流中使用本地预测 如下所述here https cloud google com sdk gcloud reference ml engine local predict 运行命令gcloud ml engine l
  • 在 Twitter Bootstrap 装订线中放置垂直线的最佳方法

    div class row fluid div class span6 Some content div div class span6 Some content div div 我想在这两列之间的排水沟中间放置一条垂直线 该线不是列的完整
  • GODI-电池:安装问题

    我正在尝试使用 GODI 控制台安装 godi batteries 我似乎已经对所有依赖项进行了排序 例如甘菊 我在 Godi 的界面中收到以下错误 gt ocamlfind ocamlopt shared linkall package
  • Tidyverse 重复跟踪父 ID 直到祖先的方法

    来自 Rebrickable 的主题数据集 https rebrickable com downloads 包括每个主题的 ID 及其父 ID 此处已重命名列 可能会递归 ID 可能有祖父母 曾祖父母等 这是一个遵循父链 City gt A
  • apscheduler 中的作业调度中下一次运行时间错过了几秒

    我有一个执行 cron 作业的函数 def add config job sched job module JOB METHODS get job type if module is None logging warn job type r
  • 用于在nodejs javascript中向用户发送消息的gmail API失败

    我的nodejs程序无法使用Gmail api发送消息 解决方案来自用于在 Node js 中发送邮件的 Gmail API https stackoverflow com questions 34546142 gmail api for
  • Solr 自动提交和自动优化?

    我很快就会将我的网站上传到 VPS 这是一个分类网站 使用Solr与 MySql 集成 每当放置或删除新的分类时 Solr 就会更新 我需要一种方法来使commit and optimize 自动化 例如每 3 小时左右一次 我怎样才能做到
  • 我们可以在c#中的datatable.select中添加参数吗

    我想知道是否可以在 datatable select expression 中添加参数 例如 string query Name Name dt is comming from database dt Select query 如何添加这个
  • 如何使用java解码引用打印[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何使用 Java 解码 Quote
  • ng-bind 不应该也适用于输入吗?

    我对我的有点困惑
  • pycurl中登录并使用cookie

    我需要下载受密码保护页面上的文件 要手动访问该页面 我首先必须通过普通登录页面进行身份验证 我想使用curl 在脚本中获取此页面 我的脚本首先登录 它似乎成功了 它从 PUT 到 login 返回了 200 但是 获取所需页面失败 返回 5
  • 在球体上均匀生成点

    我感兴趣的是生成围绕球体 均匀 且非随机 分布的点 就像高尔夫球的凹坑或足球上六边形的顶点一样 是否有明确定义的算法可以做到这一点 注意 我知道这些点并不是真正 均匀 分布在球体上 但它们的分布方式是 从直视任何点的任何方向看 点的分布看起
  • 如何对字符串中的字母进行计数和排序

    我想对用户输入的字母进行排序 并打印出用户输入的字符串中每个字母的数量 这就是我到目前为止所拥有的 我想知道这是否是正确的方法 我对java比较陌生 所以请让事情尽可能简单 根据我使用循环而不是大量 if else 构造的建议 我对我的代码
  • Aurelia CLI 包括 Bootstrap Glyphicons

    我正在尝试将 Bootstrap 包含在我的 Aurelia CLI 项目中 并且 CSS 和 JS 工作正常 我遇到的唯一问题是字形需要加载字体文件 我使用这个配置 dependencies name bootstrap path nod
  • 如何使用 Jest + Vuejs 模拟 window.location.href?

    目前 我正在为我的项目实施单元测试 并且有一个文件包含window location href 我想模拟这个来测试 这是我的示例代码 it method A should work correctly gt const url http d