【问题标题】:How to inject sinon js to application in iFrame如何将 sinon js 注入 iFrame 中的应用程序
【发布时间】:2017-12-01 16:01:37
【问题描述】:

我想在我的应用程序中测试 ajax 请求。

应用程序在 iFrame 中运行,我希望 iframe 的包装器页面将使用 sinon 测试应用程序(包装器将发送响应)。

我尝试在测试应用程序中将window's对象放入sinon的假服务器(sinon.fakeserver.create()),但是当发送对ajax调用的响应时,它不起作用。

希望这个想法清晰易懂。

感谢您的帮助,

【问题讨论】:

    标签: javascript ajax html iframe sinon


    【解决方案1】:

    这很容易。

    一旦调用sinon.fakeserver.createwindow.XmlHttpRequest 将被 sinon 对象替换。

    并且你可以分配和覆盖目标窗口对象,例如

    var server=sinon.fakeserver.create(); document.getElementByID("iframe").addEventListener("load", function(){ document.getElementByID("iframe").contentWindow.XMLHttpRequest=window.XMLHttpRequest; });

    【讨论】:

    • 谢谢你的回答,但它不起作用(试过了)。一旦我加载了 iFrame html src 文件,它就会因为伪造的服务器创建而失败。
    • 它很适合我,所以我猜你的 Ajax 调用是在页面加载期间而不是之后使用的。而这个解决方案依赖于 iframe 的 onload 事件
    • 那么我需要按什么顺序做这些事情?将 html 放入 iFrame 中?添加事件监听器?创建假服务器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多