如何使用 Jasmine 测试 XMLHttpRequest

2024-01-12

如何在没有 jQuery 的情况下测试 XMLHttpRequest 或纯 Javascript AJAX 上的 onreadystatechange ?我这样做是因为我正在开发 Firefox 扩展。我想我必须使用间谍,但不知道如何使用,因为我的ajax不会返回任何内容。


    submit : function() {
        var url = window.arguments[0];
        var request = new XMLHttpRequest();
        request.open("POST", 'http://'+this.host+'/doSomething', true);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.send("param="+param+"&emotions;="+this.getParams());
        request.onreadystatechange = function() {
            if(this.readyState == 4) {
                // alert(this.responseText);
            }
        };

    }


那么这个呢?

beforeEach(function() {
  // spyOn(XMLHttpRequest.prototype, 'open').andCallThrough(); // Jasmine 1.x
  spyOn(XMLHttpRequest.prototype, 'open').and.callThrough(); // Jasmine 2.x
  spyOn(XMLHttpRequest.prototype, 'send');
});

...

it("should call proper YQL! API", function() {
  podcast.load_feed('http://www.faif.us/feeds/cast-ogg/');

  expect(XMLHttpRequest.prototype.open).toHaveBeenCalled();
});

纯粹的 Jasmine,无需使用任何外部库。

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

如何使用 Jasmine 测试 XMLHttpRequest 的相关文章

随机推荐

  • 我可以从 fsx 文件中安装/引用软件包吗?

    我正在尝试找到一个简单的解决方案 不需要太多手动工作来参考包 在 fsx 文件内 LinqPad 4 lets me simply add nuget packages 没有智能感知或自动完成 下载某些类型的软件包后删除软件包 模板 htt
  • IClientStore 的自定义实现

    我们使用 Entity Framework Core 和 Identityserver4 来存储配置数据 我们是否需要自定义实现 IClientStore 即 FindClientByIdAsync 接口来从数据库获取客户端 public
  • C++ 包含有和没有 .h [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中使用 include 和 include 有什么区别 https stackoverflow com questions 301586 what is the difference betw
  • ssh server bash -c "cd /tmp && git pull" , cd 不起作用,需要先添加 echo

    我在 ubuntu 15 04 上 我的 ssh 客户端版本是 OpenSSH 6 9p1 Ubuntu 2ubuntu0 2 OpenSSL 1 0 2d 9 Jul 2015 当我尝试运行以下命令时ssh admin server ba
  • FactoryBot - 创建嵌套对象

    我正在学习如何在 Rails 中进行测试 并且正在为我的问题模型编写一个工厂 require factory bot FactoryBot define do factory question do sequence content n q
  • 获取 C 网页源代码的最有效方法是什么?

    In PHP我可以简单地做到这一点 file get contents http stackoverflow com questions ask 执行相同操作的最短代码是什么C UPDATE 当我使用curl编译示例时 出现如下错误 unr
  • 重写谷歌自定义搜索字符串

    我之前的自定义谷歌搜索是这样显示的 第一个链接 http raskim lt controller function 音乐 cx 014092587915392242087 3Agc6l6xlpkmq cof FORID 3A11 q th
  • Azure 云应用程序 ERR_CONNECTION_TIMED_OUT

    我想在 azure 容器服务中部署基于容器的应用程序 并遵循本教程 https learn microsoft com en us azure container service dcos swarm container service m
  • 禁止创建临时对象

    在调试多线程应用程序中的崩溃时 我终于在以下语句中找到了问题 CSingleLock m criticalSection TRUE 请注意 它正在创建 CSingleLock 类的未命名对象 因此临界区对象在此语句之后立即解锁 这显然不是程
  • Delphi GUI 设计规范和指南 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在寻找一种方法来标准化我的应用程序布局以提高我的工作效率 因为我浪费了太多时间在每个表单和对话框
  • PackedArrays 有快速的产品操作吗?

    在 Mathematica 中 包含所有机器大小的整数或浮点数的向量 或矩形数组 可以存储在压缩数组中 这些对象占用的内存较少 并且某些操作对它们的速度要快得多 RandomReal如果可能的话 生成一个压缩数组 压缩数组可以用以下命令解压
  • 猜测C2DM是否已连接的方法

    我正在尝试对是否可以接收 C2DM 消息进行最佳猜测 我创建了一个应用程序 它依赖于在物理上无法访问的情况下将信息推送到手机 我知道 C2DM 不能保证传送 但我至少想知道何时可以传送消息 如果不是 我们就会退回到我们自己的推送服务 并且实
  • 检查 pandas 数据框列的字符串类型

    我有一个相当大的 pandas 数据框 11k 行和 20 列 一列具有混合数据类型 主要是数字 浮点 其中散布着少量字符串 在使用混合列中的数据执行一些统计分析之前 我通过查询其他列来对该数据帧进行子集化 但如果存在字符串 则无法执行此操
  • 如何在自定义错误页面中访问 HTTP StatusDescription

    当操作 asp net mvc 5 在数据库中找不到某些内容时 用户必须看到一个带有简短自定义错误消息的页面 例如 Invoice 5 does not exist 此外 响应必须有一个404HTTP 代码 另一个例子 当操作被不正确地调用
  • 使用 Apache POI 在 java 中读取和写入 xls 和 xlsx excel 文件

    我正在编写一个程序 需要读取和写入 Excel 文件 无论格式如何 xls 或 xlsx 我知道 Apache POI 但它似乎有不同的类来处理 xls 文件 HSSF 和 xlsx XSSF 文件 任何人都知道我如何实现我在这里想做的事情
  • 如何在node.js的客户端包含javascript?

    我是 Node js 和 javascript 的初学者 我想在 html 代码中包含外部 javascript 文件 这是 html 代码 index html 并且 这里是 javascript 代码 simple js documen
  • 使用 ITextSharp 将 tif 转换为 pdf 的性能不佳

    Summary 如何减少将 tif 转换为 pdf 所需的时间itextsharp 背景 我正在使用 C 将一些相当大的 tif 转换为 pdfitextsharp 而且我的表现非常糟糕 每个 tif 文件大约 50kb 某些文档最多有 1
  • Webpack 源映射指向缩小包

    我正在为现有项目设置 Webpack 构建过程 并且遇到了源映射的一些问题 我在用devtool eval source map 如果浏览器中发生错误 堆栈跟踪中的每个文件 行号都指向 Webpack 包中压缩为一行的文件 例如 堆栈跟踪的
  • Android - 视图实例在屏幕旋转时获取空值

    我正在使用 Kotlin Android 扩展通过其 id 直接访问视图 我有一个进度条 我可以使用 id 直接在片段中访问它 即progress bar
  • 如何使用 Jasmine 测试 XMLHttpRequest

    如何在没有 jQuery 的情况下测试 XMLHttpRequest 或纯 Javascript AJAX 上的 onreadystatechange 我这样做是因为我正在开发 Firefox 扩展 我想我必须使用间谍 但不知道如何使用 因