柏树-模拟窗口属性



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

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

我该怎么做呢?

我试过了

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

cy.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
cy.window().then(win => {
win.foo.abc = true;            // correct the syntax here as well
})