Javascript 测试期间的短截线XHR2

Javascript 测试期间的短截线XHR2,javascript,ajax,unit-testing,sinon,Javascript,Ajax,Unit Testing,Sinon,通常我们在尝试存根/伪造XHR时使用。但最近,我们在试图伪造XHR2时遇到了一系列问题 似乎Sinon还不能完全兼容XHR2实现。一个值得注意的问题是空xhr.response(不要与xhr.responseText混淆)。这使得测试XHR2响应变得更加困难 有没有更好的XHR2测试替代方案?模拟/存根XHR2的良好起点是什么?看起来它涵盖了xhr.response:@dandavis我希望被证明是错误的,但在我的测试中,Sinon返回的xhr.response是未定义的,而xhr.respon

通常我们在尝试存根/伪造XHR时使用。但最近,我们在试图伪造XHR2时遇到了一系列问题

似乎Sinon还不能完全兼容XHR2实现。一个值得注意的问题是空
xhr.response
(不要与
xhr.responseText
混淆)。这使得测试XHR2响应变得更加困难


有没有更好的XHR2测试替代方案?模拟/存根XHR2的良好起点是什么?

看起来它涵盖了xhr.response:@dandavis我希望被证明是错误的,但在我的测试中,Sinon返回的xhr.response是未定义的,而xhr.responseText包含正确的字符串(即使responseType是
text
或`)。看@dandavis看了很长时间后,我意识到这是sinon的一个bug,
xhr.response
在加载状态下还没有准备好,你需要等到完成状态才能得到
response
。好吧,问题不在于response属性,而在于xhr.responseType从来没有在mock open()中设置过。您可能会说xhrOb.responseType='blob';它将通过隧道进入实际请求。@dandavis responseType默认为
'
,即字符串;因此,
response
应该至少与
responseText
相同,即使没有设置responseType。