gpt4 book ai didi

javascript - 如何对页面导航进行单元测试?

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:09 27 4
gpt4 key购买 nike

用例是这样的:我想对页面中运行的代码进行单元测试(在浏览器、QUnit 或类似的东西中)。页面可以做的事情之一是导航到另一个页面。我无法捕捉到这个事件,因为:

  • beforeunload 无法停止操作(因此第一个导航离开破坏了我的测试)
  • 尝试使用返回旧值的 getter 重新定义 window.location 或 window.location.href 并禁止监视 setter

我知道出于安全原因不允许停止导航,但对于开发而言,能够这样做确实很有用。

有没有可能这样做(我无法直接控制测试运行器,所以我不能只在 iframe 中加载代码并让它导航然后检查 iframe 的位置)?

编辑:更具体一点:我想测试,是否基于来自 facebook 的登录/连接状态(我使用来自 github 的 facebook-stub 来模拟 fb),是否安装了正确的处理程序登录按钮(例如,$('#login-btn')),通过单击将页面导航到 facebook oauth 对话框、服务器流(此处的详细信息并不重要)。

所以我希望能够做这样的事情:

// set up fb mock to not be connected
fbAsyncInit(); // simulate the startup of app
$('#login-btn').click();
equal(document.location.href, "http://www.facebook.com/oauth/...", "OAuth dialog not started.");

但如果当然,没有实际导航。如何做测试?

最佳答案

您所做的实际上不是单元测试,更像是验收测试。

你应该看看 selenium web driver它可以很容易地测试页面导航之类的东西。

关于javascript - 如何对页面导航进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com