LazarusCompleteGuide:4.4

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

유닛 테스트

유닛 테스트를 실행하기 위한 프레임워크는 FPC와 라자루스에 필수 부분이다. 유닛 테스트는 객체지향 코드를 테스트하는 신뢰성 있는 방법으로 구축되어왔다. FPCUnit의 구현은 자바(Java)로 쓰인 테스트 프레임워크 JUnit로부터 직접 파생되었다. 유닛 테스트 방법에 숨은 철학은 프로그래머들이 코드에서 각 함수뿐만 아니라 올바른 작동을 테스트하고 증명하는 테스트 루틴도 작성한다는 것이다.


File ⇒ New 대화창은 유닛 테스트에 필요한 세 가지 요소를 포함하는데, 이 요소들만으로 충분하다:

  • FPCUnit Test Case 새 테스트 케이스를 그룹에 추가한다. 테스트 애플리케이션에 여러 개의 FPC 유닛 테스트 클래스를 생성 및 등록하는 작업을 수반할 수 있다. 애플리케이션이 실행 중이라면 화면 창을 표시하여 모든 테스트가 트리 구조로 나타날 것이다. 테스트 결과를 표시하는 데에 사용되기도 한다.
  • FPCUnit Console Test Application 그래픽 사용자 인터페이스(GUI) 없이 새 테스트 애플리케이션을 빌드하기 위한 것으로, 테스트는 명령 행에서 시작되어야 한다. 명령 행 옵션 -help 를 이용해 애플리케이션을 시작할 경우, 추가 정보가 표시된다. 테스트 결과는 콘솔에 표시될 것이다.
  • FPCUnit Test Application 콘솔 테스트 애플리케이션과 비슷하지만, 대신 명령 행 인터페이스가 아닌 GUI를 가진다.


아래 예제는 컴파일러의 산술(arithmetic) 부분이 올바르게 작동하는지 테스트하는 방법을 보여준다. Fail 루틴이 호출되면 테스트는 성공된 것으로 간주한다:

unit TestArithmetic;
{$mode objfpc}{$H+}
interface

uses  Classes, SysUtils, fpcunit, testutils, testregistry;
type  TMyTest= class(TTestCase)
        published
        procedure TestHookUp;
      end;

implementation

procedure TMyTest.TestHookUp;
  var  x: Integer;
begin
  x := 2 + 2;
  if x <> 4 then
    Fail('The compiler''s arithmetic doesn''t work!');
end;

initialization
  RegisterTest(TMyTest);
end.