gpt4 book ai didi

reactjs - Cypress session 重定向到空白页

转载 作者:行者123 更新时间:2023-12-02 17:59:41 30 4
gpt4 key购买 nike

我是 cypress 的新手,可能缺少一些关于 session 如何在 cypress 中工作的关键理解。

我正在构建一个简单的测试,它将登录到系统,然后执行特定操作贝娄是我的测试。登录功能按预期执行,但当第一个 it 完成时,序列转到空白页面,除非我在下一个 it 中再次登录,否则它不起作用。我怎样才能在不同的 it 之间保持 session 而不让它跳转页面?

describe('create cycle', () =>{

it("login as super user", () =>{
cy.session('login', ()=>{
cy.visit('/')
login();
})
})

it('start cycle', ()=>{
cy.get("#cycles-library > ul > #library-item-2").click();
cy.get("#create-cycle").click()
cy.get("#startDate > label").first().click()
cy.get("#duration > label").first().click()
cy.get('#groups-input').click()
cy.get("body>div").last().contains('group 2').click()
cy.get("button#create-cycle").click()

})

})

谢谢!

最佳答案

cy.session() 通常与 beforeEach() 配合使用,以确保为每个测试设置正确的 session 数据。

模式是

describe('tests requiring session data', () =>{

beforeEach(() =>{
cy.session('login', ()=>{
cy.visit('/')
login();
})
})

it('test that expects logged-in status', () => {

it('another one', () => {
})

您可能看起来每次都在执行登录,但事实并非如此。 cy.session() 是一个缓存函数,它在第一次测试时运行一次,然后为每个后续测试恢复 session 数据。

你可以把它想象成 React hooks useEffect() 和一个空的依赖列表,它在组件生命周期中也只运行一次。

由于您有一个登录测试,您应该在另一个describe() block 中单独执行该测试,因为初始条件每个测试都不同。

关于reactjs - Cypress session 重定向到空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74718558/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com