프로그래밍/php

phpunit 테스트 작성

꿈꾸는섭이 2019. 7. 30. 11:58

다음과 같은 메뉴, 가격, 부가세 팁을 합해 전체금액을 계산하는 함수가 있다. 이 함수 기반으로 테스트 코드를 작성해보자

restarant-check.php

 

테스트할 메서드의 이름은 test로 시작해야하고 PHPUnit\Framework\TestCase 를 상속 받아야 한다.

다음과 같이 작성할 수 있다. 위의 함수를 이용하기위해 include를 했다. test메서드의 이름은 testWithTaxAndTip으로 하였다. 적절한 메서드명을 자기가 적으면된다. $result로 테스트할 메서드의 값을 받아오고, 그 값을 assertEquals에 예상되는 값을 자신이 넣고, 비교하여 테스트를 통과했는지 확인 할 수 있다.

RestaurantCheckTest.php

테스트 코드를 파일로 저장하고, 파일명을 phpunit 프로그램에 인수로 전달해 수행한다. 

원본 메서드의 값이 130 리턴하고, 우리가 예상되는 값으로 130을 줬기 때문에 두 값이 같은걸 확인. 테스트가 성공한 것을 알 수가 있다.  phpunit 혹은 phpunit.phar RestaurantCheckTest.php 를 git bash에서 실행한 모습이다. 딱봐도 성공한 모습니다.  OK ... 전체적인 테스트 상태와 테스트 개수 및 검증 개수를 나타낸다. Time 위 조그만 .  은 각 테스트를 의미

성공한 테스트 실행모습

실패화면을 보기 위해 다음과 같이 기대값을 120으로 assertEquals의 첫번째 인자로 주면

 

RestaurantCheckTest.php

실패한 결과는 F가 뜬다.

실패한 테스트 모습