当我需要在经过身份验证的页面上测试某些内容时,我会在挂钩之前使用以下内容:
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...
的值。
有效。
更重要的是,它允许我使用两个不同的帐户登录,获取两组不同的用户密钥,然后在我的测试中模拟它们之间的交互。
但至少可以说,它感觉很糟糕。
这种方法有什么问题吗?有没有'适当'的方法来做到这一点?