설치
npm install cypress
또는
npm install cypress --save-dev
실행하는 법
- 프로젝트의 root 디렉토리에서 아래의 명령어 입력
./node_modules/.bin/cypress open
- 또는 package.json에 아래의 코드를 추가
{
"scripts": {
"cypress:open": "cypress open"
}
}
테스트 파일 생성
- 아래 경로에 sample_spec.js 파일 생성
├── project
│ ├── node_modules
│ └── cypress
│ └── integration
│ └── sample_spec.js
│ ├── pages
├──
간단한 테스트 생성
- describe 와 it 는 Mocha,
- expect는 Chai 라는 툴과 프레임워크에서 온 것
describe('My First Test', () => {
it('Does not do much!', () => {
expect(true).to.equal(false)
})
})
요소 선택 및 사용법
-
cy.visit()
- 파라미터로 받는 url로 페이지 이동
cy.visit('http://localhost:3000');
cy.url()
.should('include', '/post/postList')
-
cy.get()
- 요소를 선택
-
.type()
- 선택한 요소에 텍스트를 입력
- { delay: seconds } 를 이용해 입력하는데 걸리는 시간을 지정 가능
-
.select()
- 셀렉트박스의 옵션을 선택
-
.should()
- 입력된 텍스트 검증
- 'have.value' 로 우측에 입력한 'WebMvcTest_Wiki'라는 값을 가져야함을 명시
↓ postList.js
<input type="text" data-testid="searchTitleText" />
↓ sample_spec.js
cy.get('[data-testid="searchTitleText"]')
.type('WebMvcTest_Wiki', { delay: 150 })
.should('have.value', 'WebMvcTest_Wiki');
cy.get('[data-testid="inputCategorySelect"]')
.select('2')
.should('have.value', '2');
click if exists
cy.get("body").then($body => {
if ($body.find("#element_name").length > 0) {
cy.get("#element_name")
.should('to.be.exist')
.click();
}
});