[perl] Perl 테스트 더블(mock, stub, spy) 사용법
소개
이 포스트에서는 Perl에서 테스트 더블(mock, stub, spy)을 사용하는 방법에 대해 설명한다.
목차
- Mock, Stub, Spy 소개
- Mock 사용법
- Stub 사용법
- Spy 사용법
- 결론
1. Mock, Stub, Spy 소개
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) 사용법에 대해 알아보았다.