'sametest'에 해당되는 글 1건

  1. 2009.03.18 [UnitTest] SameTest
Project2009.03.18 14:40

 테스팅도구인 UnitTest 그중에서 PHP에서 쓰는 테스트툴들이 몇가지 있다. 이전 버전의 프레임워크를 만들때 만들어 두었던 유닛테스트.. 일명 SameTest ! PHPUnit 이랑 비슷할수도 있을듯...; 써본게 그거라;

아직 고급기능은 없고 단순한 비교기능만 있을뿐이다.

sameValue($mHope, $mValue) - 두값을 비교(데이터타입,값)
sameType($type, $mValue) - 데이터 타입을 비교
sameClass($sName,$oClass) - 인스턴스의 클래스이름 비교
sameInt($mValue), sameInteger($mValue) - 정수형인가
sameFloat($mValue), sameDouble($mValue) - 실수형인가
sameString($mValue) - 문자열인가
sameObject($mValue) - 오브젝트(인스턴스) 인가
sameBool($mValue), sameBoolean($mValue) - Boolean형인가
sameArray($mValue) - 배열인가
sameResource($mValue) - 리소스인가
sameNull($mValue) - NULL인가
sameTrue($mValue) - True 인가
sameFalse($mValue) - False 인가

테스트 소스는 다음과 같다.

<?
require_once "../setup/setup.php";
require_once _FW_UNITTEST_PATH_."/sametest.php";
require_once _FW_DATA_PATH_."/int.php";
require_once _FW_DATA_PATH_."/float.php";

class Test_data extends SameTest
{
 private $oInt;
 private $oFloat;

 function before()
 {
  $this->oInt = new Int();
  $this->oFloat = new Float();
 }

 function Test_int()
 {
  $this->sameValue($this->oInt->get(),0);

  $this->oInt->set(123);
  $this->sameValue($this->oInt->get(),123);

  $this->oInt->set(123.45);
  $this->sameValue($this->oInt->get(),123);
 }

 function Test_float()
 {
  $this->sameValue($this->oFloat->get(),0.0);

  $this->oFloat->set(123);
  $this->sameValue($this->oFloat->get(),123.0);

  $this->oFloat->set(123.45);
  $this->sameValue($this->oFloat->get(),123.45);

  $this->sameValue($this->oFloat->round(1),123.5);
  $this->sameValue($this->oFloat->round(0),123.0);
  $this->sameValue($this->oFloat->floor(),123.0);
 }

 function Test_etc()
 {
  $this->oInt->set("abc");
  $this->sameInt($this->oInt->get());
  $this->sameValue($this->oInt->get(),0);

  $this->oInt->set(array(1,2,3));
  $this->sameInt($this->oInt->get());
  $this->sameValue($this->oInt->get(),1);

  $this->oInt->set(true);
  $this->sameInt($this->oInt->get());
  $this->sameValue($this->oInt->get(),1);
  $this->oInt->set(false);
  $this->sameInt($this->oInt->get());
  $this->sameValue($this->oInt->get(),0);

  $this->oFloat->set("abc");
  $this->sameFloat($this->oFloat->get());
  $this->sameInt($this->oFloat->get());
  $this->sameValue($this->oFloat->get(),0.0);
 }
}

$oTest = new Test_data();
$oTest->startTest();

?>

테스트 결과이다.

`Test_` 로 시작하는 메소드들이 테스트된다. 각 메소드별로 성공,실패 여부가 나온다. 특히 한번에 알아보기 쉽도록 오류가 있는 메소드를 빨간색으로 표시하도록 했음.

before(), after() 메소드는 테스트가 시작전 시작후에 한번씩만 실행되는 함수이다. 여기서는 테스트가 먹히지 않는다.
beforeTest(), afterTest() 메소드는 테스트메소드가 실행되기전과 실행후에 실행되므로 실행횟수는 테스트메소드의 갯수와 같다. 그리고 테스트중에 echo를 사용하여 출력할 경우 제일 위에 흰색 배경에 나오지만... 보기에 별로라서... 버퍼를 이용해서 테스트 화면 안에 출력되게 하였다.
이게 before(), after(), beforeTest(), afterTest() 를 모두 사용한 테스트이다. 이네개 안에서 echo만 사용해서 문자열만 출력되게 하였다.

테스트화면은 웹표준을 적용해서 통과를 받은건데.... 그 당시에는... 현재는 잘 모르겠네요;;

다른 유닛테스트에는 어떤 기능이 있는지 모르겠고 또 필요한 테스트기능이 뭔지 몰라서 현재에 만족하고 있음;

또 다른 무엇이 필요할까~?

신고
Posted by 초프(초보 프로그래머)