Modern PHP User Group 4월 모임
오퍼니티 이현석
BDD-Styled
PHP 테스팅 프레임워크
Behaviour-Driven Development
login 버튼을 누르면 /login 페이지로 이동하는지 테스트 할 수 있다
라고 생각합니다.
/로 접근시 로그인 안되어 있으면 /login.php로 이동
로그인
/로 접근시 로그인 되어있으면 /home.php 로 이동
회원가입
config:
PhpBrowser:
url: 'http://myappurl.local'
/로 접근시 로그인 안되어 있으면 /login.php로 이동
로그인
/로 접근시 로그인 되어있으면 /home.php로 이동
회원가입
시나리오 기반
클래스 기반
테스트가 길어서 분리하고 싶을 때 쉽게 클래스로 분리해낼 수 있다.
유닛테스트
generate:cept suite filename - 샘플 Cept 시나리오 생성
generate:cest suite filename - 샘플 Cest 테스트 생성
generate:test suite filename - 샘플 PHPUnit 테스트 생성
codecept generate:cest acceptance Index
vendor/bin/codecept run acceptance --steps
vendor/bin/codecept run --xml --html
tests/_output/ 폴더에 생성됨.
vendor/bin/codecept run --debug
/로 접근시 로그인 안되어 있으면 /login.php으로 이동
로그인
/로 접근시 로그인 되어있으면 /home.php로 이동
회원가입
codecept generate:cest acceptance Login
/로 접근시 로그인 안되어 있으면 /login.php로 이동
로그인
/로 접근시 로그인 되어있으면 /home.php로 이동
회원가입
/classes/TestCommons.php
/tests/_bootstrap.php
/로 접근시 로그인 안되어 있으면 /login.php로 이동
로그인
/로 접근시 로그인 되어있으면 /home.php로 이동
회원가입
DB 와 상호작용
매 테스트 마다 데이터 초기화
tests/acceptance.suite.yml 에 Db 추가
codeception.yml 에 Db 설정
dump: 테스트 db. utf8로 dump 해야 함
populate: 매 테스트 마다 db 초기화할 건지 여부
cleanup: 매 테스트 끝날 때마다 db 초기화할 건지 여부
codecept generate:cest acceptance Signin
REST
SOAP
codecept generate:suite api
tests/api.suite.yml
REST 모듈을 쓰려면 PhpBrowser 모듈을 먼저 로드해야 한다고 합니다.
codecept generate:cest api GetSiteInfo