> 编程开发 > AJAX相关 >
利用Sinon测试AJAX请求 2016-08-16 10:16 出处:清屏网 人气:
在Web前端测试中,常常会需要测试AJAX行为。 为了简化测试的环境要求需要提供虚拟的测试环境。 Sinonjs 在这方面提供了两类API:
API用于创建一个Fake对象, 使用该对象可捕获所有新构造的 XMLHttpRequest (或 ActiveXObject )实例。
Fake/Restore通常在测试开始时进行fake,测试结束后恢复相关的DOM对象:
上述代码基于Mocha测试框架,参考: 利用 Mocha 进行 BDD 风格测试 。
测试XHR对象然后在useFake后调用 $.get() ,jQuery会生成一个XHR对象, 该对象会被 fake.onCreate() 回调捕捉捕捉到并赋值给 xhr 。
下面对该XHR对象进行测试:
Fake ResponseuseFakeXMLHttpRequest 允许对每个 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
相关文章
发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。
本类最热新闻