当我需要在经过身份验证的页面上测试某些内容时,我在钩子之前使用以下内容:
beforeEach('login', () => {
cy.visit('/protected', {
onBeforeLoad: (win) => {
win.localStorage.setItem(user1.key, user1.token);
},
});
cy.on('uncaught:exception', (err, runnable) => {
console.error(err);
return false;
});
});
user.1是从“../fixtures/testUsers”导入的,我在其中复制并粘贴了浏览器存储中的键和值对。
要获取键值对,我使用社交帐户登录,然后Application在开发工具中打开选项卡,Local Storage在左侧面板中打开,然后复制其中包含字符串的键和值firebase:authUser...。
有用。
更重要的是,它让我可以使用两个不同的帐户登录,获得两组不同的用户密钥,然后在我的测试中模拟它们之间的交互。
但至少可以说,这感觉很hacky。
这种方法有什么问题吗?有没有“正确”的方法来做到这一点?