繁体   English   中英

Cypress - 模拟窗口属性

[英]Cypress - mocking window property

我有一个使用 window.foo.abc 作为条件来显示某些内容的代码。

我想用 cypress 测试这个功能,我想把这个值模拟为 false 和 true。

我怎样才能做到这一点?

我试过了

 before(function() {
      Cypress.on('window:before:load', win => {
        window.foo.abc = true;
      });

  Cypress.window().then(win => {
    window.foo.abc = true;
  });

没有成功。

我怎样才能模拟这个值?

谢谢🙏

此代码不正确,

Cypress.on('window:before:load', win => {
  window.foo.abc = true;
});

它应该是

Cypress.on('window:before:load', win => {
  win.foo.abc = true;
});

您不必在before()使用它,但它应该位于规范的顶部。

但我怀疑它在更正后仍然无法工作,很可能应用程序在加载期间将foo重置为新对象,即在cy.visit()期间

您可以使用第二个块

cy.visit('...')  // visit before changing

Cypress.window().then(win => {
  win.foo.abc = true;            // correct the syntax here as well
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM