如何使用 Jasmine 监视在另一个方法中创建的对象?

2024-02-11

给定以下代码片段,您将如何创建一个Jasmine http://jasmine.github.io/2.0/introduction.html spyOn测试以确认doSomething当你跑步时被呼叫MyFunction?

function MyFunction() {
    var foo = new MyCoolObject();
    foo.doSomething();
};

这是我的测试的样子。不幸的是,当我得到一个错误spyOn调用被评估:

describe("MyFunction", function () {
    it("calls doSomething", function () {

        spyOn(MyCoolObject, "doSomething");
        MyFunction();
        expect(MyCoolObject.doSomething).toHaveBeenCalled();

    });
});

茉莉似乎不认识doSomething方法在这一点上。有什么建议么?


或者,正如格雷格暗示的那样,我们可以使用“原型”。也就是说,我们可以监视 MyCoolObject.prototype,而不是直接监视 MyCoolObject。

describe("MyFunction", function () {
    it("calls doSomething", function () {
        spyOn(MyCoolObject.prototype, "doSomething");
        MyFunction();
        expect(MyCoolObject.prototype.doSomething).toHaveBeenCalled();

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

如何使用 Jasmine 监视在另一个方法中创建的对象? 的相关文章

  • 将客户端生成的响应作为下载进行流式传输,无需 Service Worker

    假设我有一个在客户端生成的大文件 我希望允许用户将其保存到他们的硬盘驱动器上 通常的方法是创建一个 Blob 然后为其创建一个对象 URL const blob new Blob chunks type application exampl
  • 我无法注入带有“!important”规则的样式[重复]

    这个问题在这里已经有答案了 我尝试使用以下代码注入样式 document body style color green important Per CSS 级联引用 http www w3 org TR CSS2 cascade html
  • 当名称是数组时如何使用 Javascript 修改 HTML Select

    我有两个同名的 html select 对象 它们是具有不同索引的数组 我想做的是 如果从类别 0 选择元素中选择 关闭 我想禁用类别 1 元素 我一直在尝试使用 document getElementsByName 但无法弄清楚如何专门针
  • 如何删除事件监听器?

    下面是我的事件监听器代码 window addEventListener beforeunload function e if sessionStorage token abide call api 如果我想删除这个事件监听器 我该怎么办
  • jQuery - 将所有展开的文本包装在 p 标签中

    我遇到以下情况 以下代码被写入我的页面 div Some text here which is not wrapped in tags p Some more text which is fine p p Blah blah another
  • jqgrid 在编辑框中选择不正确的下拉选项值

    我正在使用表单编辑 表单中有两个选择框 一个选择框是国家 地区 另一个选择框是州 州选择框取决于所选的国家 地区 并将动态填充 例如 Country 美国 期权价值 1 英国 期权价值 2 美国的状态 阿拉巴马州 选项值 1 加利福尼亚州
  • javascript中文本区域限制每行的字符数

    我试图用 javascript 限制文本区域中每行的字符数 我在这里看到了一些例子 但并不完全符合我的要求 我写了一些东西 只有当你每次添加超过限制时才可以 换句话说 我每行有 10 个字符的限制 如果你总是输入至少 10 个字符就可以正常
  • 标点符号加载“动画”,javascript?

    我正在寻找一种好方法来显示一些标点符号加载 动画 我想要的是这样的 This will display at second 1 Waiting for your input This will display at second 2 Wai
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • 如何延迟 NavLink 的反应?

    Delay e gt e preventDefault setTimeout gt e unpreventDefault make this work 500 render
  • 从 url 角度加载模板并在 div 内编译

    由于我是 Angular JS 的新手 我想知道如何加载外部模板并将其与一些数据一起编译到目标中div 例如我有这个模板
  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • 动态地将 .on() 方法与事件映射绑定

    我使用此语法来确保事件绑定动态添加li元素 ul list on click li function do something 我尝试使用这样的事件映射来存档相同的内容 ul list hammer css hacks false on s
  • 测量填写部分的时间 - 谷歌表单

    我正在尝试使用谷歌表单进行研究调查问卷 对于某些部分 我想自动测量用户填写所需的时间 谷歌表单中没有这样的选项 我尝试复制表单源 并用 javascript 填充时间 但它不起作用 跨源问题 未能成功托管复制的表单 如何做到 我如何衡量回答
  • apollo 客户端从存储中删除而不发生突变

    我需要通过 id 从本地存储中删除一条 记录 而不使用突变 因为服务器不支持突变 我尝试像这样手动访问商店 delete this apolloClient store getState apollo data 1112 这会删除记录 但是
  • Material.Angular.io mat-autocomplete [displayWith] 函数更新范围变量

    我遇到了一个问题 我可以在实例化 mat autocomplete 的组件控制器中访问本地声明的变量 我面临的问题是局部变量被困在这个范围内 我无法更新它们 有关更新 mat autocomplete 范围变量的任何想法或想法 最终我要做的
  • 两个日期之间间隔 15 分钟 javascript

    问题 我需要将两个日期 时间戳之间的所有 15 分钟时隙 日期格式 2016 08 10 16 00 00 创建为 HH mm 格式的数组 其中分钟限制为 00 15 30 45 示例 中午 12 30 到下午 2 30 将 gt 12 3
  • 是否可以让 webpacks System.import 使用 ajax (用于进度事件)?

    所以我刚刚更新到 webpack 2 并进行了第一个工作设置 其中 webpack 通过查看 System import 调用自动创建块 相当甜蜜 但是 我使用 ajax 调用加载初始块 以便我可以加载时显示进度 https stackov
  • 需要根据用户选择有条件地渲染具有 X 行数的部分

    我有一个反应组件 其中包含一个下拉列表 其中的选项包括none 1 5 and 13 根据用户选择的数字 我需要渲染一个部分 其中包括许多行 每个行都有字段名称和下拉列表 如果用户不选择任何一个 我需要整个附加配置部分消失 新部分中的每个下
  • 在 React JSX 中返回配对元素

    问题 在 React 中 您希望通过映射数组来创建 DOM 结构 但数组中的每个项目应返回 2 个元素 例如 import React from react import from lodash let Component React ex

随机推荐

  • 类型错误:无法使用此索引类型执行 __truediv__:DatetimeArray

    我有一个包含收盘价的数据框 Date World EN UT IND MAT CS CD IT FN TC HC 0 1997 06 13 939 3672 96 0238 75 2840 105 2635 124 7077 80 4562
  • 使用 Google 应用程序脚本将 xlsx 文件从 gdrive 导入到电子表格

    我目前正在创建一个脚本 可以将从 gdrive 文件夹存储的 xlsx 文件导入到电子表格中 我是否可以知道是否有人有我可以探索的参考或示例我已经做了一些研究 但其中一些正在 CSV 过程中 Firstly 这不是一些赠品服务 如果没有代码
  • 没有缓存版本的 gradle

    我在同步 gradle 时收到此错误 我对 gradle 还很陌生 所以不知道到底是什么问题 错误 没有 com android tools build 的缓存版本 gradle 0 10 1 可用于离线模式 当我去Setting gt G
  • 以编程方式将 SVG 形状转换为路径(lineto、moveto)

    我有一个来自 Inkscape Illustrator 或任何其他应用程序的 SVG 文件 我想将形状转换为lineto moveto curveto format 我想要的是这样的 Appname svgfile outfilewithp
  • Spring boot 中 /* 和 /** 模式有什么区别?

    当我发现过滤器之间存在差异时 我试图为过滤器注册某些 URL and 模式 Bean public FilterRegistrationBean tokenAuthenticationFilterBean FilterRegistratio
  • SQL查询获取另一个表中多行的行数

    在我的应用程序中 我有一组可以在列出资源时应用的过滤器 这些过滤器通过在执行查询之前添加 WHERE 子句等来构建查询 这是使用 SQL Server 2008 我有两个相关的表 一个包含有关资源的一些静态数据 另一个可以包含与该资源相关的
  • if 语句中的结构体初始化

    我想检查结构是否为空 即它的所有字段是否都设置为其默认值 以下内容按预期工作 package main import fmt type MyStruct struct field1 string field2 int func main v
  • R coxph() 警告:Loglik 在变量之前收敛

    我在使用 coxph 时遇到一些问题 我有两个分类变量 性别和可能的原因 我想将其用作预测变量 性别只是典型的男性 女性 但可能的原因有 5 个选项 我不知道警告消息有什么问题 为什么置信区间从 0 到 Inf 并且 p 值如此高 这是代码
  • jQuery Deferred 的 $.when() 和 failed() 回调参数

    使用时我得到了意想不到的结果 when 当其中一项延迟操作未成功时 以这个 JavaScript 为例 它创建了 2 个延迟 第一个成功 第二个失败 var f1 function return Deferred function dfd
  • jQuery UI 对话框链接而不是按钮

    我喜欢添加一个按钮 默认支持 并链接 jQuery UI 对话框 如何在 jQuery UI 对话框中添加链接 就我而言 我喜欢有 保存 按钮和 取消 链接 提前致谢 您必须按照您想要的方式设置按钮的样式 但这会注入一个链接并绑定单击 甚至
  • 如何在zendframework2中使用partial

    在ZF1中 我们在layout phtml文件中使用类似的部分 this gt partial header phtml array vr gt zf2 我们如何在 ZF2 中做到同样的事情 这可以通过以下方式实现 echo this gt
  • Python 导入错误“DLL 加载失败”| Python

    我正在 IIS6 Web 服务器后面提供 Django 应用程序 测试服务器运行完美 但是当在 Web 服务器后面运行时 模块无法导入 我收到此错误 加载 pyodbc 模块时出错 DLL加载失败 找不到指定的模块 只是为了记录该模块是py
  • Stack Overflow 桌面通知如何工作?

    也许这是一个相当大且模棱两可的问题 在 Stack Overflow 聊天室中 有一个 启用桌面通知 按钮 当有人回复您时 系统托盘中会显示一些内容 这是通过什么机制起作用的 这一直让我很好奇 网站如何访问系统托盘 它使用Notificat
  • javascript 循环中的承诺或如何一对一调用函数

    我和 slimerjs 一起工作 所以我有一个包含 url 和函数 foo 的数组 它可以用一个 url 来制作一些东西 该函数返回 Promise 如果我做这样的事情就可以了 foo urls then foo orError then
  • “只读...”类型的参数不可分配给“...[]”类型的参数

    有一个类似的问题 但与我在这里发现的问题不同 类型的参数不可分配给 类型的参数 TS 2345 https stackoverflow com questions 54298051 argument of type is not assig
  • 如何在具有 Decimal 类型值的 pandas TimeSeries 上使用mean方法?

    我需要将 Python 十进制类型值存储在 pandas 中TimeSeries DataFrame目的 在 TimeSeries DataFrame 上使用 groupby 和 mean 时 Pandas 给我一个错误 以下基于浮动的代码
  • 将 ASP.NET MVC 混合到 ASP.NET WebForms 中

    由于某种原因 我的路由忽略了任何访问我的 MVC 页面的尝试 只是给了我 404 我有一个 WebForms 应用程序设置如下 虚拟目录 东西 所以我通常像这样访问我的网站 http localhost thing someFile asp
  • 为什么不总是使用 fpic(位置无关代码)? [复制]

    这个问题在这里已经有答案了 I read this https stackoverflow com questions 5311515 gcc fpic option在 PIC 上发帖 似乎使用 PIC 总是好的 无论何时它是 exe 静态
  • R 3.0.0 更新导致大量 2.x 软件包不兼容

    今天早上我在 Ubuntu 10 04 上更新了一些 R ubuntu 软件包 然后我尝试的第一个 R 脚本告诉我 Zoo 不是为 R 3 0 0 构建的 所以我这样做sudo R进而update packages ask F 假设它会使我
  • 如何使用 Jasmine 监视在另一个方法中创建的对象?

    给定以下代码片段 您将如何创建一个Jasmine http jasmine github io 2 0 introduction html spyOn测试以确认doSomething当你跑步时被呼叫MyFunction function M