경로에서 단위 테스트 만들기
하지만... 테스트할 경로와 화면이 엄청나게 많습니다. 어디서 시작하나요?
모든 응용 프로그램 경로에 대해 가능한 모든 단위 테스트를 작성하는 것이 좋습니다.
이 게시물은 애플리케이션의 경로 목록을 기반으로 단위 테스트를 자동으로 생성하는 방법을 다룹니다.
TLDR;
장인 명령을 만들고,
php artisan make:command GenerateUnitTestCommand
그리고 다음과 같이 클래스를 업데이트합니다.
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Console\Output\BufferedOutput;
class GenerateUnitTestCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:generate';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Generate tests from routes';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$this->buffer = new BufferedOutput();
$this->callBuffer('route:list', [
'--json' => true,
'--except-vendor' => true,
]);
$routes = json_decode($this->buffer->fetch(), JSON_OBJECT_AS_ARRAY);
if (count($routes) == 0) {
return $this->components->error("Your application doesn't have any routes.");
}
$this->info(count($routes).' routes found');
foreach ($routes as $route) {
if (empty($route['name'])) {
$this->warn('Empty route name. Skip generate unit test for '.'('.$route['method'].') '.$route['uri']);
continue;
}
$this->line('Generating unit test for '.'('.$route['method'].') '.$route['uri']);
$class = str($route['name'])->replace('.', ' ')->headline()->replace(' ', '').'Test';
$this->call('pest:test', [
'name' => $class,
'--force' => true,
]);
}
return 0;
}
/**
* Call another console command.
*
* @param \Symfony\Component\Console\Command\Command|string $command
* @param array $arguments
* @return int
*/
public function callBuffer($command, array $arguments = [])
{
return $this->runCommand($command, $arguments, $this->buffer);
}
}
이제 다음을 간단히 실행할 수 있습니다.
php artisan generate:test
이렇게 하면 경로를 기반으로 가능한 모든 테스트가 생성됩니다.
이제 단위 테스트 작성을 시작할 기준선이 생겼습니다.
참고하세요. 저는 PestPHP을 사용하고 있습니다.
그래서, 다음은 무엇입니까?
모델, API 통합, Livewire를 기반으로 클래스를 생성할 수 있습니다. 그러나 이러한 클래스가 채워지는 방법과 테스트를 생성하는 방법을 이해해야 합니다.
지금은 경로를 기반으로 작성하고 단위 테스트를 생성합니다.
Reference
이 문제에 관하여(경로에서 단위 테스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nasrulhazim/create-unit-test-from-routes-4k9a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)