AJax技术

利用Sinon测试AJAX请求

字号+ 作者:H5之家 来源:H5之家 2016-08-18 10:07 我要评论( )

在Web前端测试中,常常会需要测试AJAX行为。 为了简化测试的环境要求需要提供虚拟的测试环境。 Sinonjs 在这方面提供了两类API: Fake XMLHttpRequest:覆盖DOM

> 编程开发 > AJAX相关 >

利用Sinon测试AJAX请求 2016-08-16 10:16 出处:清屏网 人气: 

在Web前端测试中,常常会需要测试AJAX行为。 为了简化测试的环境要求需要提供虚拟的测试环境。 Sinonjs 在这方面提供了两类API:

  • Fake XMLHttpRequest:覆盖DOM API中的XHR。使得我们可以捕获所有用户构建的XHR对象,包括直接构造的 XMLHttpRequest ,也包括通过jQuery等工具构造的。因此可以测试XHR构造是否正确。
  • Fake Server:Mock服务器行为。如果我们只希望Mock服务器的Response,可以使用Fake Server。
  • Fake XMLHttpRequest

    API用于创建一个Fake对象, 使用该对象可捕获所有新构造的 XMLHttpRequest (或 ActiveXObject )实例。

    Fake/Restore

    通常在测试开始时进行fake,测试结束后恢复相关的DOM对象:

    上述代码基于Mocha测试框架,参考: 利用 Mocha 进行 BDD 风格测试 。

    测试XHR对象

    然后在useFake后调用 $.get() ,jQuery会生成一个XHR对象, 该对象会被 fake.onCreate() 回调捕捉捕捉到并赋值给 xhr 。

    下面对该XHR对象进行测试:

    Fake Response

    useFakeXMLHttpRequest 允许对每个 xhr 给出HTTP响应,即 useFakeXMLHttpRequest 包含了 useFakeServer 的功能。

    虽然DOM XHR是异步的,但Fake XHR是同步的

    Fake Server

    的功能是 sinon.useFakeXMLHttpRequest 功能的一部分。 但提供了更加方便的Request/Response映射。 如果我们只是希望Mock服务器行为而不关心XHR对象本身,可以使用 useFakeServer() API:

    Fake/Restore

    同样地,首先进行Fake和恢复:

    测试AJAX

    然后开始测试AJAX行为,注意异步方法需要返回Promise,让Mocha等待该异步过程结束。

    引入chai-as-promised可以简化上述断言,例如:

    详情请参考:Mocha 下测试异步代码

    分享给小伙伴们:

    本文标签: Ajax/">Ajax

    相关文章

    发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

  • 本类最热新闻

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 如何在asp.net下利用AJAX技术实现树型目录结构

      如何在asp.net下利用AJAX技术实现树型目录结构

      2016-08-13 12:01

    • AJAX技巧在PHP开发中的简略利用 .

      AJAX技巧在PHP开发中的简略利用 .

      2016-01-22 10:01

    • AJAX利用之草稿主动保留

      AJAX利用之草稿主动保留

      2016-01-22 08:01

    • 利用AjaxControlToolkit实现百度搜索时的下拉列表提示详细步骤

      利用AjaxControlToolkit实现百度搜索时的下拉列表提示详细步骤

      2016-01-17 14:13

    网友点评