是否可以将 beforeEach 和 afterEach 赛普拉斯的挂钩组合成自定义命令?

Is it possible to combine beforeEach & afterEach Cypress's hooks into a custom command?

是否可以组合在 beforeEachafterEach 挂钩中触发的自定义命令?我目前正在使用 cypress-localstorage-commands plugin 像这样:

beforeEach(() => {
  cy.restoreLocalStorage();
});

afterEach(() => {
  cy.saveLocalStorage();
});

有没有办法将其抽象为 custom command,这样我就不需要添加这些 hooks 或在每个 spec 文件中重复使用此代码?

我不是赛普拉斯方面的专家,但所有测试库都必须遵守 Javascript 的规则:它们的“特殊功能”(如 beforeEach/afterEach ) 仍然只是 Javascript 个函数。

因此,我 相信 如果你想创建一个同时添加 beforeEachafterEach 的函数,它应该像下面这样简单:

const addBoth = () => {
    beforeEach(() => {
      cy.restoreLocalStorage();
    });

    afterEach(() => {
      cy.saveLocalStorage();
    });
};

然后您只需调用:

addBoth();

任何你想添加的地方。这应该适用于 any JS 库(测试或其他),除非它在幕后做一些涉及函数范围的非常聪明的事情(例如 React hooks)。