Cypress로 Laravel Breeze 인증 테스트

6773 단어 laravelphpcypress
이 게시물은 Laravel Breeze를 사용하는 모든 Laravel 프로젝트에 추가하기 매우 쉬운 몇 가지 예를 보여줍니다.

전체 예제를 사용하려면 Laracast/Cypress package 을 사용해야 합니다.

다음은 로그인 예입니다.

Laravel의 기본 사용자 팩토리는 팩토리에서 생성된 사용자 비밀번호를 "password"로 설정한다는 점에 유의하십시오.

describe('Authentication test', () => {
    it('tests a success manual authentication with the login form', () => {
        cy.visit(`/login`);

        cy.php(`
            App\\Models\\User::factory()->create(['email', '[email protected]']);
        `).then(user => {
            cy.get('input[type="email"]').type(user.email);
            cy.get('input[type="password"]').type('password');
        });

        cy.get('button[type="submit"]').click();

        cy.location('pathname').should('equal', '/dashboard');
    });
});


몇 가지 흥미로운 아이디어는 다음과 같습니다.

http 상태 코드 테스트




cy.request('http://localhost:8000/dashboard').then((response) => expect(response.status).to.eq(200));


미들웨어 테스트




// visit a url
cy.visit('http://localhost:8000/dashboard');
// check the next url location
cy.url().should('match', /login);


때로는 로그아웃과 같은 더 큰 워크플로를 테스트한 다음 일부 미들웨어가 작동하는지 확인해야 합니다...

cy.visit('/logout') // I got you cover, it would do the magic


일부 콘텐츠 확인


/dashboard url에서 환영 메시지와 같은 것을 테스트할 수 있다는 말로 이스케이프될 수 있는 텍스트 테스트를 피해야 한다는 점을 명심하십시오.

cy.contains('Welcome');


또는 더 나은 방법은 PHP 방법이나 로그인 도우미를 사용하여 현재 사용자 환영 메시지를 정확하게 테스트하는 것입니다.

cy.login({ email: '[email protected]', name: 'John Doe' });
cy.visit('/dashboard').contains('Welcome Back, John Doe');


이 작은 예제가 응용 프로그램에 대한 자체 테스트를 만드는 데 충분한 지침을 제공하는 데 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기