[perl] Perl 테스트 더블(mock, stub, spy) 사용법

소개

이 포스트에서는 Perl에서 테스트 더블(mock, stub, spy)을 사용하는 방법에 대해 설명한다.

목차

  1. Mock, Stub, Spy 소개
  2. Mock 사용법
  3. Stub 사용법
  4. Spy 사용법
  5. 결론

1. Mock, Stub, Spy 소개

Mock, Stub, Spy는 테스트 더블의 종류로, 실제 객체를 대체하여 테스트에서 사용된다.

2. Mock 사용법

예를 들어, Calculator 모듈에 add 메서드가 있는 경우, 해당 메서드가 두 번 호출되는지 확인하려면 다음과 같이 사용한다.

use Test::MockObject;
my $mock = Test::MockObject->new();
$mock->mock('add', sub {
    my ($self, $a, $b) = @_;
});

3. Stub 사용법

Calculator 모듈에 add 메서드가 있을 때, 메서드 호출 시 항상 동일한 값을 반환하도록 Stub을 구현할 수 있다.

$mock->fake_module('Calculator', add => sub { 
    return 4;
});

4. Spy 사용법

메서드 호출을 기록하거나 매개변수를 검증하는 Spy를 사용할 수 있다.

my $spy = Test::MockObject->new();
$spy->mock('add', sub {
    my ($self, $a, $b) = @_;
    ok($a == 2 && $b == 3, 'add 메서드에 올바른 매개변수 전달');
});

5. 결론

테스트 더블을 사용하면 테스트할 대상과의 의존성을 줄일 수 있으며, 테스트의 정확성과 안정성을 높일 수 있다. Mock, Stub, Spy를 적절히 활용하여 효과적인 테스트를 작성할 수 있다.

이상으로 Perl에서의 테스트 더블(mock, stub, spy) 사용법에 대해 알아보았다.

참고 자료