파일을받는 POST 콜백에 대한 테스트를 작성하려고합니다.
컨트롤러는이 기능을 사용하여 이미지를 원하는 위치로 이동합니다.
$request->file('image')->move(env('IMG_DIR'), $filename);
env ( 'IMG_DIR')은 테스트와 로컬 환경에서 다르며 정말 잘 작동합니다.
내 테스트는 다음과 같습니다.
$file = new UploadedFile(base_path() . 'tests/file/test_img.png', 'test.png', 'png', null, null, true);
$this->call('POST', '/endpoint', null, ['user-jwt' => env('CU_JWT')], ['image' => $file])
업로드가 잘 작동하고 이미지가 올바르게 이동되고 테스트가 성공적입니다.
문제는 테스트를 실행할 때마다 테스트에 사용하는 이미지 ( tests/file/test_img.png
)가 디렉토리에서 사라진다는 것입니다. PHPUnit / Laravel에 업로드가 가짜 여야하며 원본 이미지를 실제로 이동하지 않아야한다고 알려주는 방법이 있습니까?
개발 환경에서 이미지 사본을 만듭니다.
$originalImagePath = base_path() . 'tests/file/test_img.png';
$copyImagePath = base_path() . 'tests/file/test_img_copy.png';
File::copy($originalImagePath, $copyImagePath)
그런 다음 복사 된 이미지로만 작업
$file = new UploadedFile($copyImagePath, 'test.png', 'png', null, null, true); // etc.
이렇게하면 복사 된 이미지가 이미지 디렉토리를 떠나 테스트를 실행하면 모든 것이 시작된 동일한 방식으로 끝납니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다