121호. Pest : 테스트 코드 양을 확 줄여주는 테스팅 프레임워크 free

2020-04-06

누노 마두로가 단순함에 촛점을 맞춘 PHP 테스팅 프레임워크를 만들고 있습니다. 이름은 Pest 입니다. 좋은 이름인지 확신이 없었는지 트위터에서 설문 조사를 하기도 했는데요.



이름을 바꾸자는 의견이 더 많았지만, 40%면 충분하다며 Pest란 이름을 고수하기로 했습니다.(a.k.a. 답정너)


Pest는 완전히 새로운 테스팅 프레임워크라기 보다는 PHPUnit을 조금 더 편하게 사용할 수 있게 해주는 것으로 보면 될 것 같습니다. 현재까지 공개된 Pest의 가장 큰 특징은 PHPUnit과 호환되면서 코드 양을 현격하게 줄여준다는 것입니다.


PHPUnit에서 보일러 플레이트 코드가 많이 거슬렸나봅니다. 최근에 블로그에 올린 Make your tests 70% smaller 라는 글에서 다음의 코드를 예로 들었습니다.



namespace Tests\Feature;

use Illuminate\Foundation\Testing\DatabaseMigrations;

class HomeTest extends BrowserKitTestCase
{
use DatabaseMigrations;

/** @test */
public function users_can_see_the_homepage()
{
$this->visit('/')
->see('Laravel.io')
->see('The Laravel Community Portal');
}
}

같은 내용의 테스트를 Pest를 사용하면 다음과 같이 작성할 수 있다고 합니다.



it('has home page', function () {
$this->visit('/')
->see('Laravel.io')
->see('The Laravel Community Portal');
});

또한 higher order 메시지를 지원해서 다음과 같이 두 줄 더 줄일 수도 있다고 하네요.



it('has home page')->visit('/')
->see('Laravel.io')
->see('The Laravel Community Portal');

개발은 어느 정도 완료가 됐고 컨퍼런스에서 발표를 하고 나면 대중에 공개할 예정이라고 합니다. 누노 마두로는 Pest 외에도 다양한 발표 거리를 준비하고 컨퍼런스 초대를 기다리고 있습니다. 워낙 재미있어 보이는 주제들이 많아서 뒤로 많이 밀리지나 않을지 걱정이네요. ^^ 여튼 빠른 시일 내에 써볼 수 있으면 좋겠습니다.


1일 1식 라라벨 120호


2020년 4월 6일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.